遍历Map的几种方式超详细~

Map集合该如何完成遍历~

Map就像一个大西瓜 我们需要将它切开 才能完成遍历
在这里插入图片描述

首先我们创建一个Map集合并向集合添加数据

Map<String,Integer> map = new HashMap<>();
//Map集合集合添加元素 键值对 = 主键 + 值
map.put("小翔",210);//体育生
map.put("小俐",160);//艺术生
map.put("小黑",720);//我家小狗

一个大西瓜三种刀法:

No1 : keySet() : 得到所有主键对象组成的Set集合 map.get(k) => 得到值

在这里插入图片描述

Map<String,Integer> map = new HashMap<>();
map.put("小翔",210);
map.put("小俐",160);
map.put("小黑",720);

//forEach方式
Set<String> ks = map.keySet();//得到所有的主键对象
for(String k : ks){
    Integer v = map.get(k);//通过k找v
    System.out.println(k + " : " + v);
}
//迭代器方式 
//建议使⽤for循环⽅式 while循环⽅式迭代器对象在while循环体的外⾯,会在内存中占⽤⼀定的资源!不推荐使⽤!
for (Iterator<String> it = map.keySet().iterator();it.hasNext();){
    String k = it.next();
    Integer v = map.get(k);
    System.out.println(k + " : " + v);
}

No2 : values() : 得到所有的值对象组成的Collection集合 不能反向找k

在这里插入图片描述

Map<String,Integer> map = new HashMap<>();
map.put("小翔",210);
map.put("小俐",160);
map.put("小黑",720);

Collection<Integer> vs = map.values();//拿到Map集合所有的值对象组成的Collection集合
for(Integer v : vs){
    System.out.println(v);
}

No3 : entrySet() : 得到所有键值对对象(Map.Entry)组成的Set集合

在这里插入图片描述

Map<String,Integer> map = new HashMap<>();
map.put("小翔",210);
map.put("小俐",160);
map.put("小黑",720);
//forEach方式
Set<Map.Entry<String,Integer>> es = map.entrySet();//将Map集合横向切片 得到键值对对象组成的Set集合
for(Map.Entry<String,Integer> e : es){
    //每个e对象 都代表Map集合当中的一条记录 一个键+一个值
    String k = e.getKey();//拿到当前记录的主键
    Integer v = e.getValue();//拿到当前记录的值
    System.out.println(k + " : " + v);
}
//迭代器方式
for (Iterator<Map.Entry<String, Integer>> entries  = map.entrySet().iterator();entries.hasNext();){
    Map.Entry<String, Integer> entry = entries.next();
    String k = entry.getKey();
    Integer v = entry.getValue();
    System.out.println(k + " : " + v);
}

JDK8.0开始如何使用lambda表达式 一行遍历整个Map集合~

Map<String,Integer> map = new HashMap<>();
map.put("小翔",210);
map.put("小俐",160);
map.put("小黑",720);
map.forEach((k,v) -> System.out.println( k + " : " + v));
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值