最近发现一个蛋疼的问题,有些小问题,遇到之后,百度一下解决了,然后再次遇到,还是不会,还得百度一下,然后第三次遇到,还是不会。这就蛋疼了,这些知识点,遇到就得查,感觉是应该掌握的,没有办法,以后还是记录一下吧。反正文章不能发表到首页,也没几个人看,就当记笔记好了。
- 第一种方案:二次取值
这种方案是通过Map.keySet来遍历map的key来实现遍历:具体代码如下:
for(Integer key:map.keySet()){ map1.put(key, map.get(key)); }
- 第二种方案,迭代器iterator
使用迭代器将整个map实现迭代,代码如下:
Iterator<Map.Entry<Integer, String>> iterator=map.entrySet().iterator(); while(iterator.hasNext()){ Map.Entry<Integer, String> entry=iterator.next(); map2.put(entry.getKey(), entry.getValue()); }
- 第三种方案, EntrySet
使用Map.entrySet来遍历map的key和value。推荐使用,特别是大容量的map
for(Map.Entry<Integer, String> entry:map.entrySet()){ map3.put(entry.getKey(), entry.getValue()); }
- 第四种方案,最残缺的一个方案(只能遍历value)
这种方案是使用map的values()方法,只能遍历value,不能获取key
int i=1; for(String value:map.values()){ map4.put(i, value); i=i+1; }
https://github.com/LiuJishuai/javaCore/blob/master/src/com/collection/Collection_Map_Classic01.java