Stream流中的常用方法_filter
过滤:filter
可以通过filter 方法将一个流转换成另一个子集流。方法签名:
Stream<T> filter(Predicate<? super T> predicate);
该接口接收一个Predicate 函数式接口参数(可以是一个Lambda或方法引用)作为筛选条件。
复习Predicate接口
此前我们已经学习过java.util.stream.Predicate 函数式接口,其中唯一的抽象方法为:
boolean test(T t);
该方法将会产生一个boolean值结果,代表指定的条件是否满足。如果结果为true,那么Stream流的filter 方法
将会留用元素;如果结果为false,那么filter 方法将会舍弃元素。
基本使用
Stream流中的filter 方法基本使用的代码如:
package com.learn.demo02.Stream;import java.util.stream.Stream;/*Stream流中的常用方法_filter:用于对Stream流中的数据进行过滤Stream<T> filter(Predicate<? super T> predicate);filter方法的参数Predicate是一个函数式接口,所以可以传递Lambda表达式,对数据进行过滤Predicate中的抽象方法:boolean test(T t);*/
public class Demo03Stream_filter {public static void main(String[] args) {//创建一个Stream流Stream<String> stream = Stream.of("张三丰", "张翠山", "赵敏", "周芷若", "张无忌");//对Stream流中的元素进行过滤,只要姓张的人Stream<String> stream2 = stream.filter((String name)->{return name.startsWith("张");});//遍历stream2流stream2.forEach(name-> System.out.println(name));/*Stream流属于管道流,只能被消费(使用)一次第一个Stream流调用完毕方法,数据就会流转到下一个Stream上而这时第一个Stream流已经使用完毕,就会关闭了所以第一个Stream流就不能再调用方法了IllegalStateException: stream has already been operated upon or closed*///遍历stream流stream.forEach(name-> System.out.println(name));}
}
Stream流中的常用方法_filter相关推荐
- Stream流中的常用方法_concat
组合:concat 如果有两个流,希望合并成为一个流,那么可以使用Stream 接口的静态方法concat : static <T> Stream<T> concat(Stre ...
- Stream流中的常用方法_skip
跳过前几个:skip 如果希望跳过前几个元素,可以使用skip 方法获取一个截取之后的新流: Stream<T> skip(long n); 如果流的当前长度大于n,则跳过前n个:否则将会 ...
- Stream流中的常用方法_limit
取用前几个:limit limit 方法可以对流进行截取,只取用前n个.方法签名: Stream<T> limit(long maxSize); 参数是一个long型,如果集合当前长度大于 ...
- Stream流中的常用方法_count
统计个数:count 正如旧集合Collection 当中的size 方法一样,流提供count 方法来数一数其中的元素个数: long count(); 该方法返回一个long值代表元素个数(不再像 ...
- Stream流中的常用方法_map
映射:map 如果需要将流中的元素映射到另一个流中,可以使用map 方法.方法签名: <R> Stream<R> map(Function<? super T, ? ex ...
- Stream流中的常用方法_forEach
流模型的操作很丰富,这里介绍一些常用的API.这些方法可以被分成两种: 延迟方法:返回值类型仍然是Stream 接口自身类型的方法,因此支持链式调用.(除了终结方法外,其余方 法均为延迟方法.) 终结 ...
- java.util.stream_java.util.stream.Stream 接口中的常用方法
流模型的操作很丰富,下面介绍一些常用的API.这些方法可以被分成两种: 延迟方法 返回值类型仍然是 Stream 接口自身类型的方法,因此支持链式调用.(除了终结方法外,其余方 法均为延迟方法.) 终 ...
- 【JDK8 新特性 6】收集Stream流中的结果
上一篇文章 : (9条消息) [JDK8 新特性 5]Stream流介绍和常用方法的使用_一切总会归于平淡的博客-CSDN博客 目录 1.Stream流中的结果到集合中 2.Stream流中的结果到数 ...
- Java复习第11天---11.3---Java8新特性---Stream流特点和常用方法2
Java复习第11天---11.3---Java8新特性---Stream流特点和常用方法2 目录 文章目录 1.Stream流特点 2.filter:过滤 3.map:映射 ***后记*** : 内 ...
最新文章
- 程序员请收好:10个非常有用的 Visual Studio Code 插件!
- 33条C#、.Net经典面试题目及答案[zt]
- 前端学习(14):相对路径和绝对路径
- 史陶比尔机器人CS9控制器及SP2示教器使用简易指南
- 准备一个月,考过软件系统架构师
- Maven2部署构件到Nexus时出现的Failed to transfer file错误
- TypeError: FC() takes no arguments
- linux如何更改密钥环密码,Linux系统教程:Ubuntu桌面上禁用默认的密钥环解锁提示...
- 如何系统地自学python100天_Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅...
- UWB定位系统在展馆中的应用
- C++ 面向对象、内存管理
- 采购订单和 采购申请 的表
- 规范TS项目Any类型的使用
- 对于家政020 APP平台如何走出资本寒冬?
- 抗疫得闲●流花湖(1)
- PTA 旅游规划(邻接矩阵) 思路分析及代码解析
- 分享Jupyter notebook
- 服装ERP丨样衣管理系统解决方案
- 网站订餐外卖与手机订餐的发展分析
- 报错 fatal: The current branch html has no upstream branch. To push the current branch and set the