遍历Map的方法, 我总结了5种, CoreJava中给出的是第一种使用forEach+lambda表达式, 我认为这种方法应该是最好的, 但是只能在Java8之后的版本使用;

建议优先使用第一种和第四种(类似第二种);

遍历Map:
第一种可以使用Map的forEach方法加上Java8的lambda表达式:

aMap.forEach( (k,v)->{System.out.println(k+" "+v);} );

第二种可以使用Map.Entry来遍历Map的条目:

for(Map.Entry<String, String> it : aMap.entrySet()){System.out.println(it.getKey()+"="+it.getValue());System.out.println(it);
}

第三种可以使用for结合Map的keySet和values方法来遍历:

for(String a : aMap.keySet()){System.out.println(a);
}
for(String a : aMap.values()){System.out.println(a);
}

第四种是使用迭代器, 这种是看起来比较熟悉而且效率挺高的, 但是要注意, 不能在使用for循环访问迭代器的同时使用remove操作, javadoc说这样会发生不可预期的错误, 如果希望迭代的同时删除元素, 可以使用while来遍历:

for(Iterator<Map.Entry<String, String>> it = aMap.entrySet().iterator();it.hasNext();){Map.Entry<String, String> itt = it.next();System.out.println(itt.getKey()+"="+itt.getValue());System.out.println(itt);
}

当然还有第五种是在遍历keySet的时候调用get方法获取对应的值, 但是这种方法太捞了, 效率很低, 不提了, 就上一段测试代码吧:

for(String i : aMap.keySet()){System.out.println(i+"="+aMap.get(i));
}

测试代码如下:

import java.util.*;class test16 {public static void main(String[] args) {Map<String,String> aMap = new TreeMap<>();aMap.put("Aluka", "AluWife");aMap.put("GodV", "mifengaaa");aMap.put("zz", "lym");aMap.forEach( (k,v)->{System.out.println(k+" "+v);} );System.out.println();aMap.remove("zz");for(Map.Entry<String, String> it : aMap.entrySet()){System.out.println(it.getKey()+"="+it.getValue());System.out.println(it);}System.out.println();for(String a : aMap.keySet()){System.out.println(a);}for(String a : aMap.values()){System.out.println(a);}System.out.println();for(Iterator<Map.Entry<String, String>> it = aMap.entrySet().iterator();it.hasNext();){Map.Entry<String, String> itt = it.next();System.out.println(itt.getKey()+"="+itt.getValue());System.out.println(itt);}}
}

输出如下:

Aluka AluWife
GodV mifengaaa
zz lymAluka=AluWife
Aluka=AluWife
GodV=mifengaaa
GodV=mifengaaaAluka
GodV
AluWife
mifengaaaAluka=AluWife
Aluka=AluWife
GodV=mifengaaa
GodV=mifengaaa

贴一些map和sortedmap的常用方法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7xVz63q-1662517598204)(https://ws4.sinaimg.cn/large/006tNbRwgy1fw7bo65jxsj310o0py4e1.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ke2jWbJZ-1662517598204)(https://ws1.sinaimg.cn/large/006tNbRwgy1fw7boi6dyzj310809y798.jpg)]

]

Java遍历Map的五种方法(Java8中新lambda方法)相关推荐

  1. Java遍历Map的五种方式

    一.遍历Map的五种方式 java中遍历map一般有五种方法,从最早的Iterator,到java5支持的foreach,再到java8的Lambda表达式. 如果只是获取key,或者value,推荐 ...

  2. Java遍历Map的5种方法

    Map作为Java中的一种集合,以键值对的形式存放一批数据,经常会被我们应用在项目中. 既然是一种集合,自然就有需要遍历的场景.今天就来说5种遍历Map的方法. 01通过map对象的entrySet遍 ...

  3. Java 遍历 Map 的几种方式

      在 Java 中遍历 Map 有多种方法,既然 Java 中的所有 map 都实现了 Map 接口,以下方法适用于任何 map 实现(HashMap,TreeMap,LinkedHashMap,H ...

  4. JAVA遍历Map的几种方法

    ​​​​​​​​​​​​​​ 目录 前言 一.for循环 + Entryset 二.Iterator + Entryset 三.for循环 + KeySet(效率低) 四.Iterator + Key ...

  5. java stream 遍历map_遍历map的五种方法介绍

    日常开发中Map集合遍历是经常使用的,下面介绍几种遍历方法的差异. (推荐教程:java课程) 1.Iterator+entrySet写法[推荐JDK8以下],Map.Entry是Map接口的内部接口 ...

  6. Java中遍历Map的五种方式

    方法一:在for循环中遍历value Map<String, String> map = new HashMap();map.put("开发", "开发&qu ...

  7. Java遍历Map的4种方式

    public static void main(String[] args) {// 循环遍历Map的4中方法Map<Integer, Integer> map = new HashMap ...

  8. java遍历map的几种方式

    想了解更多数据结构以及算法题,可以关注微信公众号"数据结构和算法",每天一题为你精彩解答.也可以扫描下面的二维码关注 在java中常见的map有HashMap和TreeMap,他们 ...

  9. 项目中使用 java函数式编程_函数式编程在Java8中使用Lambda表达式进行开发

    事情起因 如果不喜欢看故事的同学,请前往下一章节. 事情起因是我打算集成Redis缓存,配置了Redis以后,发现@Cacheable注解始终不生效,折腾了大半天以后,我的心态已经崩了,决定不使用@C ...

最新文章

  1. 在原有Android项目中快速集成React Native
  2. android屏幕适配库,Android屏幕适配之布局设置(二)
  3. 计算机网络 数据段、报文、IP数据报、数据包、MAC帧的区别;应用层、运输层、网络层、数据链路层、物理层的区别与功能;转发器、集线器、网桥、交换机、路由器、网关的功能与区别
  4. LeetCode 1909. 删除一个元素使数组严格递增
  5. 如何使用社会化媒体网络建立个人品牌(国外篇)
  6. Effective C# 原则33:限制类型的访问(译)
  7. 人均阅读18本,揭露2022全国职场人阅读报告
  8. Unity编辑器定制和开发插件
  9. OpenCV Error: Unsupported format or combination of formats (Unsupported combination of input and out
  10. macbook查看java版本,Mac下查看JDK版本和安装目录
  11. 修炼一名程序员的职业水准
  12. 通俗易懂解释信源编码与信道编码的区别与联系
  13. 【自然语言处理工具箱 LTP 】pyltp 使用教程
  14. WMB系列-消息流中节点监视与MM+的使用注意事项
  15. 淘宝原数据商品详情API调用示例
  16. InnoDB基于MVCC和next-key锁解决幻读问题
  17. 爆火的ChatGPT到底能做什么?5分钟带你进入AI的大门
  18. nginx某条日志详解
  19. 关于DELL戴尔服务器安装系统是否需要引导盘的问题
  20. excel python 文字中间横杠_怎么在“excel”中的文字中间划一道横线?

热门文章

  1. [Windows] 电脑专属后花园 HideUL软件隐藏工具v1.0便携版
  2. Android启动页,引导页适配华为手机(虚拟按键)显示问题
  3. 王者荣耀能单独注销一个服务器吗,王者荣耀:“注销账号”功能如果真的上线正式服,你会舍得吗?...
  4. Python爬虫——XPath的使用
  5. python 使用nacos 注册中心 注册服务
  6. Java集合类中removeAll和remove的区别
  7. Jquery 循环遍历table获取tr内指定的元素,并校验查重,删除元素值有相同的tr
  8. 网页前端知识汇总(一)——CSS如何为网页图片设置圆角效果
  9. C++ 字符编码知识转载
  10. Spring Security 6.x 系列【2】认证篇之使用数据库存储用户