遍历Map集合的另一种方式

本文介绍了Java中Map集合的多种遍历方法,包括通过keySet()、values()及entrySet()方法,并展示了如何将Map转换为List。特别讨论了当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的值

 

转载于:https://www.cnblogs.com/ablejava/p/5643446.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值