A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 莫运飞 中级黑马   /  2012-4-16 11:13  /  2009 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

HashMap<String,Integer> maps=new HashMap<String,Integer>();//创建HashMap集合

maps.put("aaa",23);
maps.put("bbb",33);
maps.put("ccc",43);

Set<Map.Entry<String,Integer>> entrySet=maps.entrySet();//上面已经有一个集合了,这里又弄一个集合出来是做上面的???不理解for(Map.Entry<String,Integer> entry: entrySet)//循环取出

{
Sstem.out.println(entry.getKey()+"...."+entry.getValue());

}




4 个回复

倒序浏览
Map集合没有迭代器 的功能 所以要迭代就要创建另一个集合与它关联
创建Set集合是为了 对Map集合中的元素进行迭代
回复 使用道具 举报
你如果想要遍历一个Map集合的有两种方式,一个是keySet,一个是entrySet。
它们都是Set集合的迭代器方式,将Map集合进行遍历。所以要再创建一个Set集合与Map进行关联。
回复 使用道具 举报
Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射关系的 Set 视图。
也是一个Set,而Set中每个元素是内部类Map.Entry。
这样再通过增强for循环就能把每一个元素的值 和键取出来了
回复 使用道具 举报
for(Map.Entry<String,Integer> entry: entrySet)这个是for循环增强读取集合,
要是先for循环的增强读取的话,该集合必须实现实现Iterable接口。所以创建另一个集合与它关联。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马