0

以下に示すように 2 つのマップがあり、以下に示す必要な形式の新しいマップとして出力したいですか? これが可能かどうか提案してください。

Map<String,String> abc = new HashMap<String, String>();
abc.put("Apple", "Mobile");
abc.put("Apple", "Tablet");

Map<String,String> def = new HashMap<String, String>();
def.put("Mobile", "iphone5");
def.put("Tablet", "iMini");

必要な o/p 形式"

Map<String,Map<String,String>> xyz= new HashMap<String, Map<String,String>>();

例 {{Apple={Mobile=[iphone]},Apple={タブレット=[iMini]}}

4

4 に答える 4

1

次のようにします。

Map<String,Map<String,String>> xyz = new HashMap<String, Map<String,String>>();
xyz.put("def", def);
xyz.put("abc", abc);

HashMapジェネリック クラスなので、任意のオブジェクトを入れることができます。

于 2012-12-02T18:16:27.913 に答える
1

何を達成しようとしているのか完全にはわかりませんが、2番目のコードサンプルに示されているように、マップ値を他のマップとして持つことは確かに可能です。

しかし、最初のサンプルには問題があります。値「Tablet」をキー「Apple」に追加すると、値「Mobile」が上書きされます。HashMap は、1 つのキーに対して 1 つの値のみを持つことができます。キーに複数の値を持つことができる Map の実装はないと思いますが、作成するのは難しくありません。

HashMapを参照してください: 1 つのキー、複数の値

于 2012-12-02T18:21:05.900 に答える
0

確かに可能です。外側のマップのキーとして何を使用するかを決定する必要があるだけです。

Map<String,String> abc = new HashMap<String, String>();
abc.put("Apple", "Mobile");
abc.put("Apple", "Tablet");

Map<String,String> def = new HashMap<String, String>();
def.put("Mobile", "iphone5");
def.put("Tablet", "iMini");

Map<String,Map<String,String>> xyz = new HashMap<String, Map<String,String>>();
xyz.put("Foo",abc);
xyz.put("Bar",def);
于 2012-12-02T18:15:47.610 に答える
0

はい、可能です。

Map<String,Map<String,String>> mapOfMap = new HashMap<String,Map<String,String>>();

mapOfMap.put("map1", new HashMap<String,String>());

mapOfMap.put("map2", new HashMap<String,String>());
于 2012-12-02T18:16:56.193 に答える