我有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>>();
实施例 {{苹果= {移动= [iphone]},苹果= {平板= [IMINI]}}
答案 0 :(得分:1)
只需按以下步骤操作:
Map<String,Map<String,String>> xyz = new HashMap<String, Map<String,String>>();
xyz.put("def", def);
xyz.put("abc", abc);
HashMap
是generic class,因此您可以将任何对象放入其中。
答案 1 :(得分:1)
不完全确定您要实现的目标,但肯定可以将地图值设置为第二个代码示例中指示的其他地图。
但是您的第一个示例存在问题:当您使用“Apple”键添加值“Tablet”时,它将覆盖“Mobile”值。 HashMap只能对一个键有一个值。我不认为Map的实现可以有多个键值,但创建一个不难。
答案 2 :(得分: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);
答案 3 :(得分: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>());