首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地图地图-如何保持内部地图作为地图?

地图地图-如何保持内部地图作为地图?
EN

Stack Overflow用户
提问于 2010-11-07 23:09:45
回答 6查看 121.9K关注 0票数 13

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

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

为了向你们的专家学习,我想知道如何保存所有的地图作为地图。或者,有可能吗?

这是我的锻炼计划:

代码语言:javascript
复制
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<Object,String> mp=new HashMap<Object, String>();

        // 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<Object,String> mp2=new HashMap<Object, String>();
        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<Object,String> 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));
        }             
    }
}

解决方案:

代码语言:javascript
复制
   Map<Object,Map<Object,String>
    Map<String, Object> mpMaps=new HashMap<String, Object>(); 

阿米尔和斯莱斯克

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-11-07 23:23:26

下面是更新后的代码,您需要将地图映射键入为<String, Object>,因为mp不是一个字符串,您不能执行<Object, String>

代码语言:javascript
复制
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<Object,String> mp=new HashMap<Object, String>();

        // 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<Object,String> mp2=new HashMap<Object, String>();
        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<String, Object> mpMaps=new HashMap<String, Object>();

        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<Object> a = new ArrayList<Object>(mpMaps.keySet());
                     Object o=a.get(i);
                     System.out.println("all together: " + mpMaps.size() + "each element is:  " + o + " value: " + mpMaps.get(o));
        }             
    }
}
票数 10
EN

Stack Overflow用户

发布于 2011-08-04 19:16:09

另一种解决方案是使用公域MultiKey来避免映射。见http://commons.apache.org/collections/apidocs/http://commons.apache.org/collections/apidocs/的详细信息

票数 7
EN

Stack Overflow用户

发布于 2010-11-07 23:20:25

您的代码不编译。

一个问题是:

代码语言:javascript
复制
Map<Object,String> mpMaps=new HashMap();
mpMaps.put("Map1",mp);

这是行不通的,因为您将地图(mp)放入值需要为Strings的映射中。

使用Map<Object,Map<Object,String>,你应该会没事的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4120216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档