黑马程序员技术交流社区
标题:
HashMap的一点问题
[打印本页]
作者:
896575538
时间:
2016-7-11 23:26
标题:
HashMap的一点问题
为什么在集合嵌套中,两个子集合中定义的相同名字的键不能都被打印?
HashMap <String , Integer>hm1 = new HashMap<>();
hm1.put("第一个",01);
HashMap<String , Integer>hm2 = new HashMap<>();
hm2.put("第二个",02);
HashMap<HashMap<String , Integer>,String>hm = new HashMap<>();
hm.put(hm1,001);
hm.put(hm2.002);
就像这样,遍历一下后就只能打印出一个,不能都打印出来
作者:
觅离
时间:
2016-7-23 22:46
你看看你new了几个对象了。。。
作者:
SwallowJin
时间:
2016-7-24 07:43
求给分啊 急需技术分,求助攻!
package com.bi.Lc;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class HashMapLc {
public static void main(String[] args) {
HashMap <String , Integer> hm1 = new HashMap<String , Integer>();
hm1.put("第一个",01);
HashMap<String , Integer> hm2 = new HashMap<String , Integer>();
hm2.put("第二个",02);
HashMap<HashMap<String , Integer>,String> hm = new HashMap<HashMap<String , Integer>,String>();
hm.put(hm1, "0001");
hm.put(hm2, "0002");
Iterator iter = hm.entrySet().iterator();
while(iter.hasNext()){
Map.Entry<String, Integer> entry = (Map.Entry<String, Integer>) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
System.out.println(key+"=========="+val);
}
}
}
作者:
ylca
时间:
2016-7-24 13:14
既然是嵌套 那取出也得嵌套取出
for (HashMap <String , Integer> hmt : hm.keySet()) {
for (String key : hmt.keySet()) {
System.out.println(key+"="+hmt.get(key));
}
System.out.println(hm.get(hmt));
}
作者:
rockphoenix
时间:
2016-7-24 15:13
和楼上观点一样,既然是嵌套集合那么遍历的时候双层循环遍历就好了,另外楼主代码有个小问题就是hm的值得泛型应该是Integer不是String
作者:
q123123
时间:
2016-7-24 23:29
几层嵌套就用几层循环
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2