Stream流学习(一) filter limit skip(n) distinct 中间操作
Stream 流中间操作
- filter 筛选
- limit 截断流
- skip(n) 跳过元素
- distinct 去重
filter 筛选
筛选:接收 Lambda ,从流中排除某些元素。return为true时,元素会被保留
eg:筛选出大于35的并且工资大于6000的。
public class StreamFilter {List<Employee> employees = new ArrayList<>();{employees.add(new Employee(1,"张三",20,8895.31));employees.add(new Employee(2,"张四",28,7894.34));employees.add(new Employee(3,"张柳",46,6895.37));employees.add(new Employee(66,"王一",54,5895.5));employees.add(new Employee(56,"李四",55,4895.8));employees.add(new Employee(89,"李十一",32,9895.354));employees.add(new Employee(546,"张十五",20,18895.37));employees.add(new Employee(43,"刘十六",43,28895.35));employees.add(new Employee(43,"刘十六",43,28895.35));}/*** 测试Stream的Filter方法* 接收 Lambda ,从流中排除某些元素*/@Testpublic void testStreamFilter() {Stream<Employee> employeeStream = employees.stream().filter(employee -> {//保留大于35的并且工资大于6000的return employee.getAge() > 35 && employee.getSalary()>6000;});employeeStream.forEach(System.out::println);}
}
result:
limit 截断流
截断:截断流,使其元素不超过给定数量
eg:limit(3)
/*** 测试Stream的limit方法* 截断流,使其元素不超过给定数量*/@Testpublic void testStreamFilter() {Stream<Employee> employeeStream = employees.stream().limit(3);employeeStream.forEach(System.out::println);}
result:
skip(n) 跳过元素
跳过:skip(n)
跳过元素
eg:跳过2个元素(使用场景:进行Excel导入时,第一行或者前两行通常是表头不需要操作)
/*** 测试Stream的Skip方法* 跳过元素,返回一个舍弃了前n个元素的流;若流中元素不足n个,则返回一个空流;与 limit(n) 互补* 从第二个元素得到两个元素*/@Testpublic void testStreamFilter() {Stream<Employee> employeeStream = employees.stream().skip(2);employeeStream.forEach(System.out::println);}
result:
distinct 去重
筛选去重:通过流所生成的 hashCode()
与 equals()
取除重复元素
eg:去除list
中的重复项
/*** 测试Stream的distinct方法* 筛选,通过流所生成的 hashCode() 与 equals() 取除重复元素* 去除重复项*/@Testpublic void testStreamFilter() {Stream<Employee> employeeStream = employees.stream().distinct();employeeStream.forEach(System.out::println);}
result:
Stream流学习(一) filter limit skip(n) distinct 中间操作相关推荐
- Stream流学习记录
1. 创建流 单列集合: 集合对象.stream() List<Author> authors =new ArrayList<>();Stream<Author> ...
- Stream流学习(二)map方法
Stream流的map方法 map()接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素 eg:将employees中Employee的名字汇总成一个String集合 List ...
- 【Stream流学习】Java 8 新特性|Collectors.joining() 案例详解
[辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...
- Stream流学习(三)sorted方法
sorted方法 1. `sorted`自然排序方法 2. `sorted(Comparator c)`定制排序方法 3. 按照对象的某个属性排序 初始化集合数据: List<Employee& ...
- Stream流之最全学习总结
Stream流是java8的一大亮点,它与java.io包里面的InputStream和OutputStream是完全不同的概念. java8中的Stream流是对集合(Collections)和数组 ...
- Lambda表达式接口更新方法引用函数式接口Stream流
Lambda表达式&接口更新&方法引用&函数式接口&Stream流 Lambda 1.程序启动三种不同的表现形式 2.Lambda表达式的标准格式 3.练习 Lambd ...
- 24.1 传统集合的多步遍历代码、Stream流更优写法与stream、forEach、filter、count、limit、skip、concat方法、静态方法:tream.of()
目录 1 传统集合的多步遍历代码 2 Stream的更优写法 3 Stream流 3.1 Stream流:获取流 列:单列集合.双列集合.数组获取stream流 3.2 Stream流中的常用方法:f ...
- Java函数式编程学习——Stream流
目录 概述 案例数据准备 1. 常用操作 2. 中间操作 filter map distinct sorted limit skip flatMap 3. 终结操作 foreach count max ...
- java day24【Stream流、方法引用】
第一章 Stream流 说到Stream便容易想到I/O Stream,而实际上,谁规定"流"就一定是"IO流"呢?在Java 8中,得益于Lambda所带来的 ...
最新文章
- 牛!开创交互式电脑绘图先河,虚拟现实之父传奇
- ecs 云服务器 管理控制台_阿里云ECS服务器监控资源使用情况
- 自动点击屏幕脚本代码_原来这么简单,一分钟学会引流脚本
- 如何修复XML内存“泄漏”
- GitHub下载代码方法
- linux常用命令速查手册PDF下载
- idea怎么调试jsp页面_JSP+Servlet+C3P0+Mysql实现的YCU movies电影网站
- USACO_Prime Cryptarithm
- python knn模型_kNN模型(Python3.x环境)
- Java| Javadoc生成Java帮助文档
- 万字讲解WiFi为何物
- 基于某电信运营数据的精准营销分析
- 西方哲学史的主要发展阶段
- Android keeps stopping
- CHROME扩展笔记之webRequest·图片拦截
- Echarts饼图实现颜色渐变
- 3阶魔方阵c语言算法,3阶魔方阵的算法
- 从乌镇互联网大会,了解未来技术发展趋势
- windows和ubuntu双系统,ubuntu下硬盘变成只读状态,无法粘贴文件的有效解决方法
- 《实用多媒体技术》课程习题及解答