集合遍历
2019-05-22 06:32:28来源:博客园 阅读 ()
1、使用增强的for循环
1 HashMap hashMap=new HashMap(); 2 hashMap.put("name","张三"); 3 hashMap.put("age",12); 4 hashMap.put("score",90); 5 for (Object key:hashMap.keySet()){ 6 System.out.println(key+" --> "+hashMap.get(key)); 7 }
此种方式可以遍历所有集合,但使用的是临时变量,只能访问集合元素,不能修改。
2、Collection集合可以使用自身的 forEach(Consumer action)方法,Consumer是一个函数式接口,只需实现 accept(element)方法。
1 HashSet hashSet=new HashSet(); 2 hashSet.add("张三"); 3 hashSet.add("李四"); 4 hashSet.add("王五"); 5 //参数表示当前元素 6 hashSet.forEach(ele-> System.out.println(ele));
此方式只能用于Collection集合。
3、Map集合也可以使用自身的forforEach(BiConsumer action),BiConsumer是一个函数式接口,只需要实现accept(key,value)方法。
1 HashMap hashMap=new HashMap(); 2 hashMap.put("name","张三"); 3 hashMap.put("age",18); 4 hashMap.put("score",90); 5 //2个参数,一个代表键,一个代表对应的值 6 hashMap.forEach((key,value)-> System.out.println(key+" --> "+value));
此方式只能用于Map集合。
4、使用Iterator接口
Iterator即迭代器,可用的4个方法:
boolean hasNext()
Object next() 获取下一个元素
void remove() 删除当前元素
void forEachRemaining(Consumer action) 可以使用Lambda表达式遍历集合
1 HashSet hashSet=new HashSet(); 2 hashSet.add("张三"); 3 hashSet.add("李四"); 4 hashSet.add("王五"); 5 //获取迭代器对象 6 Iterator iterator=hashSet.iterator(); 7 while (iterator.hasNext()){ 8 System.out.println(iterator.next()); 9 }
1 HashSet hashSet=new HashSet(); 2 hashSet.add("张三"); 3 hashSet.add("李四"); 4 hashSet.add("王五"); 5 //获取迭代器对象 6 Iterator iterator=hashSet.iterator(); 7 iterator.forEachRemaining(element-> System.out.println(element));
以上两种方式效果完全相同。
说明:
Collection集合才能使用此方式,因为Collection集合才提供了获取Iterator对象的方法,Map未提供。
List集合还可以使用 listIterator() 获取 ListIterator对象,ListIterator是Iterator的子接口,使用方式和Iterator完全相同,只是ListIterator还提供了其它方法。
在循环体中不能使用集合本身的删除方法来删除元素,会发生异常。要删除,只能使用Iterator类提供的remove()方法来删除。
原文链接:https://www.cnblogs.com/chy18883701161/p/10897500.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 与JAVA集合相遇 2020-06-11
- Java笔记:集合 2020-06-10
- 2020最新IDEA插件大集合,一款能帮助你写代码的工具是多么重 2020-06-09
- 聊聊 OAuth 2.0 的 token expire_in 使用 2020-06-08
- 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用 2020-06-06
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash