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={Tablet=[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

不完全确定您要实现的目标,但肯定可以将地图值作为您的第二个代码示例中指示的其他地图。

但是您的第一个示例存在问题:当您使用键“Apple”添加值“Tablet”时,它将覆盖值“Mobile”。一个 HashMap 只能有一个值到一个键。我不认为 Map 的实现可以对键有多个值,但创建一个值应该不难。

参见HashMap:一个键,多个值

于 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 回答