遍历Map集合的另一种方式
我们常用的遍历集合中key和value的方式是:
Map<String,String> map = new HashMap<String,String>(); Set<String> mapSet = map.keySet();和Collection<String> c = map.values();
方法,如果想把map集合的values转为List<String>集合可以使用下面的方法:
Map<String, String> map = new HashMap<String, String>(); map.put("1", "aa"); map.put("2", "bb"); Set<String> keySet = map.keySet(); List<String> valList = new ArrayList<String>(map.values());
在api中出提供了上面的方法取得map集合中的key和value外还提供了,map.entrySet();方法,下面看看下面的示例:
public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("1", "aa"); map.put("2", "bb"); Set<String> keySet = map.keySet(); List<String> li = new ArrayList<String>(map.values()); Map<String,String[]> mapArr = new HashMap<String, String[]>(); String[] attStr = {"1","2"}; String[] attStr2 = {"3","4"}; mapArr.put("a", attStr); mapArr.put("a", attStr2); // 第一种,map中的key没有相同的情况 Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = (Entry<String, String>) it.next(); System.out.println(entry.getKey()+"************"+entry.getValue()); } for (Map.Entry<String, String> string : map.entrySet()) { System.out.println(string.getKey()+"----------"+string.getValue()); } // 第二种,map集合中key相同,value不同的情况 Iterator itArr = mapArr.entrySet().iterator(); while (itArr.hasNext()) { Map.Entry<String, String[]> arrMap = (Entry<String, String[]>) itArr.next(); System.out.println(arrMap.getKey()+"0000"+arrMap.getValue()[0]); } for (Map.Entry<String, String[]> string : mapArr.entrySet()) { System.out.println(string.getKey()+"eeeeeee"+string.getValue()[0]); } }
代码运行结果:
总结:
使用:map.entrySet();方法当有相同的key时,只会输出最后一次put的值