地图地图 – 如何将内部地图保留为地图?

我的目标是创建一个地图地图,以便我可以通过其键检索外部地图的信息,然后通过其键访问其“内部”地图。

但是,当我得到每个内部地图时,我创建的地图最初变成了一个对象,我不能像使用外部地图那样使用键来访问它的值。

要向您学习专家,我想知道如何将所有地图保留为地图。 或者,它有可能吗?

这是我的锻炼计划:

import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class MapExample { public static void main(String[] args) { Map mp=new HashMap(); // adding or set elements in Map by put method key and value pair mp.put(new Integer(2), "Two"); mp.put(new Integer(1), "One"); mp.put(new Integer(3), "Three"); mp.put(new Integer(4), "Four"); Map mp2=new HashMap(); mp2.put(new Integer(2), "Two2"); mp2.put(new Integer(1), "One2"); mp2.put(new Integer(3), "Three2"); mp2.put(new Integer(4), "Four2"); Map mpMaps=new HashMap(); mpMaps.put("Map1",mp); mpMaps.put("Map2",mp2); System.out.println("This is a map of Maps: " + mpMaps); for (int i=0;i<mpMaps.size();i++){ ArrayList a = new ArrayList(mpMaps.keySet()); Object o=a.get(i); System.out.println("all together: " + mpMaps.size() + "each element is: " + o + " value: " + mpMaps.get(o)); } } } 

解决方案:

  Map<Object,Map Map mpMaps=new HashMap(); 

由ameer和sleske

以下是似乎有效的更新代码,您需要将地图的地图键入为因为mp不是您不能执行的字符串

 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.ArrayList; public class MapExample { public static void main(String[] args) { Map mp=new HashMap(); // adding or set elements in Map by put method key and value pair mp.put(new Integer(2), "Two"); mp.put(new Integer(1), "One"); mp.put(new Integer(3), "Three"); mp.put(new Integer(4), "Four"); Map mp2=new HashMap(); mp2.put(new Integer(2), "Two2"); mp2.put(new Integer(1), "One2"); mp2.put(new Integer(3), "Three2"); mp2.put(new Integer(4), "Four2"); Map mpMaps=new HashMap(); mpMaps.put("Map1",mp); mpMaps.put("Map2",mp2); System.out.println("This is a map of Maps: " + mpMaps); for (int i=0;i a = new ArrayList(mpMaps.keySet()); Object o=a.get(i); System.out.println("all together: " + mpMaps.size() + "each element is: " + o + " value: " + mpMaps.get(o)); } } } 

您的代码无法编译。

一个问题是:

 Map mpMaps=new HashMap(); mpMaps.put("Map1",mp); 

这不起作用,因为你将Map( mp )放入一个其值必须为Strings的Map中。

使用Map ,你应该没问题。

另一种解决方案是使用Commons MultiKey来避免地图的映射。 请参阅http://commons.apache.org/collections/apidocs/和org.apache.commons.collections.keyvalue.MultiKey上的详细信息

映射mpMaps = new HashMap();

mpMaps.put( “地图1”,熔点);

你会得到这个语句的exception:mp有类型Map,但你把它当作一个String。

如果我理解你的问题,你需要引用用作键的对象,或者你需要键入转换你的键/值。

例

这是创建地图地图的示例。