java8 遍历list集合
java中的集合有两种形式Collection<E>,Map<K,V>
- Collection类型集合
在JAVA7中遍历有一下几种方式:
List<String> list = Arrays.asList("aaaa","bbbb");
//for循环
for (int i=0;i< list.size();i++){System.out.println(list.get(i));
}//增强for循环
for(String str : list){System.out.println(str);
}
//迭代器
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){System.out.println(iterator.next());
}
在JAVA8中还可以使用forEach来遍历:
list.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}
});
发现和使用sort排序的写法是一样的:
Collections.sort(list, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return o1.compareTo(o2);}
});
发现代码量没有减少多少,那么我们在加上Lambda表达式,如下:
list.forEach(str-> System.out.println(str));
sort排序也使用Lambda表达式,如下:
Collections.sort(list,(o1,o2)->{return o1.compareTo(o2);});
- Map类型集合
在JAVA7中遍历有下面几种方式:
Map<String,String> map = new HashMap<>();
map.put("id","11");
map.put("name","zhangsan");
map.put("age","30");
for (Map.Entry<String,String> entry : map.entrySet()){System.out.println("k=" + entry.getKey() + ",v=" + entry.getValue());
}
for (String key : map.keySet()){System.out.println("k=" + key + ",v=" + map.get(key));
}
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()){Map.Entry<String, String> entry = iterator.next();System.out.println("k=" + entry.getKey() + ",v=" + entry.getValue());
}
for (String v : map.values()){System.out.println("v=" + v);
}
使用JAVA8的forEach遍历,如下:
map.forEach(new BiConsumer<String, String>() {@Overridepublic void accept(String s, String s2) {System.out.println("k=" + s + ",v=" + s2);}
});
也可以使用Lambda表达式,如下:
map.forEach((k,v)-> System.out.println("v="+k+",v="+v));
本文中只使用forEach,没有使用JAVA8的Stream包。
注:例子中出现的Consumer和BiConsumer是JAVA8中新增的函数式接口,Consumer接口中只有一个无返回结果并且只有一个泛型参数的方法,源码如下:
BiConsumer接口中提供的是一个无返回结果并且有两个泛型参数的方法,源码如下:
java8 遍历list集合相关推荐
- java8遍历数组_java8新特性,使用流遍历集合
在这篇"Java 8新特性教程"系列文章中,我们会深入解释,并通过代码来展示,如何通过流来遍历集合,如何从集合和数组来创建流,以及怎么聚合流的值. 在之前的文章"遍历.过 ...
- Collection集合--遍历List集合的五种方法
一.总结 遍历List集合的方法 方法描述 方法一 由迭代器Iterator进行遍历 方法二 由集合定义时的泛型遍历for(T t:list) 方法三 根据索引遍历for(int i = 0;i &l ...
- 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )
文章目录 一.使用 map 集合的 find 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 find 方法遍历 map 集合 使用 map 集合的 find 方法遍历 map 集合 ...
- 【Groovy】map 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )
文章目录 一.使用 map 集合的 each 方法遍历 map 集合 二.代码示例 一.使用 map 集合的 each 方法遍历 map 集合 遍历 map 集合 , 可以调用 map 集合的 eac ...
- 【Groovy】集合遍历 ( 调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 | =~ 运算符等价于 contains 函数 | 代码示例 )
文章目录 一.调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 二.代码示例 一.调用集合的 every 方法判定集合中的所有元素是否符合闭包规则 集合的 every 方法 , 用于 ...
- 【Groovy】集合遍历 ( 使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 | 代码示例 )
文章目录 一.使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 1.闭包中使用 == 作为 findAll 方法的查找匹配条件 2.闭包中使用 is 作为 findAll 方法的查找匹 ...
- 【Groovy】集合遍历 ( 使用集合的 find 方法查找集合元素 | 闭包中使用 == 作为查找匹配条件 | 闭包中使用 is 作为查找匹配条件 | 闭包使用 true 作为条件 | 代码示例 )
文章目录 一.使用集合的 find 方法查找集合元素 1.闭包中使用 == 作为查找匹配条件 2.闭包中使用 is 作为查找匹配条件 3.闭包中使用 true 作为查找匹配条件 二.完整代码示例 一. ...
- 【Groovy】集合遍历 ( 使用集合的 reverseEach 方法进行遍历 | 倒序集合迭代器 ReverseListIterator 类简介 | 代码示例 )
文章目录 一.使用集合的 reverseEach 方法进行倒序遍历 二.倒序集合迭代器 ReverseListIterator 类简介 三.代码示例 一.使用集合的 reverseEach 方法进行倒 ...
- 【Groovy】集合遍历 ( 使用集合的 eachWithIndex 方法进行遍历 | 代码示例 )
文章目录 一.使用集合的 eachWithIndex 方法进行遍历 二.代码示例 一.使用集合的 eachWithIndex 方法进行遍历 集合的 eachWithIndex 方法 , 该函数传入一个 ...
最新文章
- Java版开发原生App支付
- hashMap put方法 第二行代码
- SQLServer数据库访问帮助类
- cpu 保存模式的内存访问向下兼容原理
- 一招判断三元催化堵塞_汽车的氧传感器和三元催化器故障如何判断呢?用这些方法判断...
- python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)
- 原生js ajax请求有几个步骤?分别是什么
- 小知识--Windows语音效果
- 是否可以将现有图表导入到 think-cell?
- 东方时尚驾校科目一网上视频快速通过方法
- Acwing1183. 电力
- str.substring() 的用法
- 博客中的动态图片如何制作
- 计算机及统计学,统计学中及计算机视觉中的各种 距离 汇总。。。
- 微信小程序——image图片自适应宽度比例显示的方法
- linux+sftp限制目录,Linux 限制SFTP用户目录和权限
- [笔记] 疯狂JAVA讲义(第3版)第4章 流程控制与数组
- 修炼内功的融云,以通讯中台赋能企业数字化升级
- python第二阶段(2)入门-数据科学包 pandas
- 常用mysql连接数据库工具_MYSQL中常用的工具
热门文章
- 我的世界java版种子掠夺者,我的世界1.14新版村庄要塞种子 可以和掠夺者为伴 自带刷怪笼...
- 计算机网络管理员 职业技能鉴定,国家职业技能鉴定·操作技能强化训练:计算机网络管理员(国家职业资格四级)(学生取证专用)...
- 2022全年度奶粉十大热门品牌销量榜单
- pwd命令 – 显示当前工作目录的路径
- 2017-2018-2 20179207 《网络攻防技术》第六周作业
- Linux 的.bashrc 文件详解
- 2021年秋招面经分享·海光【GPU芯片设计工程师(成都)】
- Ubuntu图形界面入门学习笔记
- 跨境电商卖家如何创建客户参与的 Facebook 广告?
- python编写递归函数_Python递归函数如何写?正确的Python递归函数用法!