遍历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的值

 

posted @ 2016-07-05 14:12  夏中伟  阅读(167)  评论(0编辑  收藏  举报