Map of maps - how to keep the inner maps as maps?(地图地图 - 如何将内部地图保留为地图?)
问题描述
我的目标是创建一个地图地图,以便我可以通过其键检索外部地图的信息,然后通过其键访问其内部"地图.
My goal is to create a map of maps so that I can retrieve info of the outer map by its key and then access its "inner" maps by their keys.
但是,当我得到每个内部地图时,我最初创建的地图变成了一个对象,我不能像使用外部地图那样使用键来访问它的值.
However, when I got each inner map, the map I created originally became an Object and I cannot use key to access its value as I do with the outer map.
为了向各位专家学习,我想知道如何将所有地图保留为地图.或者,有可能吗?
To learn from you experts, I would like to know how to keep all the maps as maps. Or, is it possible at all?
这是我的锻炼计划:
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));
}
}
}
解决方案:
Map<Object,Map<Object,String>
Map<String, Object> mpMaps=new HashMap<String, Object>();
阿米尔和斯莱斯克
推荐答案
这是更新后的代码,似乎可以工作,您需要将地图的地图键入为 <String, Object>
因为mp 不是你不能做的字符串 <Object, String>
.
Here is the updated code that seems to work, you need to type the map of maps as <String, Object>
since mp isn't a string you can't do <Object, String>
.
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));
}
}
}
这篇关于地图地图 - 如何将内部地图保留为地图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:地图地图 - 如何将内部地图保留为地图?


基础教程推荐
- 如何在 Spring @Value 注解中正确指定默认值? 2022-01-01
- 验证是否调用了所有 getter 方法 2022-01-01
- 在 Java 中创建日期的正确方法是什么? 2022-01-01
- 大摇大摆的枚举 2022-01-01
- Java Swing计时器未清除 2022-01-01
- Java 实例变量在两个语句中声明和初始化 2022-01-01
- 多个组件的复杂布局 2022-01-01
- 不推荐使用 Api 注释的描述 2022-01-01
- 如何在 JFrame 中覆盖 windowsClosing 事件 2022-01-01
- 从 python 访问 JVM 2022-01-01