过滤: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相关推荐

  1. Stream流中的常用方法_concat

    组合:concat 如果有两个流,希望合并成为一个流,那么可以使用Stream 接口的静态方法concat : static <T> Stream<T> concat(Stre ...

  2. Stream流中的常用方法_skip

    跳过前几个:skip 如果希望跳过前几个元素,可以使用skip 方法获取一个截取之后的新流: Stream<T> skip(long n); 如果流的当前长度大于n,则跳过前n个:否则将会 ...

  3. Stream流中的常用方法_limit

    取用前几个:limit limit 方法可以对流进行截取,只取用前n个.方法签名: Stream<T> limit(long maxSize); 参数是一个long型,如果集合当前长度大于 ...

  4. Stream流中的常用方法_count

    统计个数:count 正如旧集合Collection 当中的size 方法一样,流提供count 方法来数一数其中的元素个数: long count(); 该方法返回一个long值代表元素个数(不再像 ...

  5. Stream流中的常用方法_map

    映射:map 如果需要将流中的元素映射到另一个流中,可以使用map 方法.方法签名: <R> Stream<R> map(Function<? super T, ? ex ...

  6. Stream流中的常用方法_forEach

    流模型的操作很丰富,这里介绍一些常用的API.这些方法可以被分成两种: 延迟方法:返回值类型仍然是Stream 接口自身类型的方法,因此支持链式调用.(除了终结方法外,其余方 法均为延迟方法.) 终结 ...

  7. java.util.stream_java.util.stream.Stream 接口中的常用方法

    流模型的操作很丰富,下面介绍一些常用的API.这些方法可以被分成两种: 延迟方法 返回值类型仍然是 Stream 接口自身类型的方法,因此支持链式调用.(除了终结方法外,其余方 法均为延迟方法.) 终 ...

  8. 【JDK8 新特性 6】收集Stream流中的结果

    上一篇文章 : (9条消息) [JDK8 新特性 5]Stream流介绍和常用方法的使用_一切总会归于平淡的博客-CSDN博客 目录 1.Stream流中的结果到集合中 2.Stream流中的结果到数 ...

  9. Java复习第11天---11.3---Java8新特性---Stream流特点和常用方法2

    Java复习第11天---11.3---Java8新特性---Stream流特点和常用方法2 目录 文章目录 1.Stream流特点 2.filter:过滤 3.map:映射 ***后记*** : 内 ...

最新文章

  1. 程序员请收好:10个非常有用的 Visual Studio Code 插件!
  2. 33条C#、.Net经典面试题目及答案[zt]
  3. 前端学习(14):相对路径和绝对路径
  4. 史陶比尔机器人CS9控制器及SP2示教器使用简易指南
  5. 准备一个月,考过软件系统架构师
  6. Maven2部署构件到Nexus时出现的Failed to transfer file错误
  7. TypeError: FC() takes no arguments
  8. linux如何更改密钥环密码,Linux系统教程:Ubuntu桌面上禁用默认的密钥环解锁提示...
  9. 如何系统地自学python100天_Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅...
  10. UWB定位系统在展馆中的应用
  11. C++ 面向对象、内存管理
  12. 采购订单和 采购申请 的表
  13. 规范TS项目Any类型的使用
  14. 对于家政020 APP平台如何走出资本寒冬?
  15. 抗疫得闲●流花湖(1)
  16. PTA 旅游规划(邻接矩阵) 思路分析及代码解析
  17. 分享Jupyter notebook
  18. 服装ERP丨样衣管理系统解决方案
  19. 网站订餐外卖与手机订餐的发展分析
  20. 报错 fatal: The current branch html has no upstream branch. To push the current branch and set the

热门文章

  1. C#微信公众号开发 -- (七)自定义菜单事件之VIEW及网页(OAuth2.0)授权
  2. GBrowse配置相关资料
  3. php配置xdebug调试
  4. ip sensor芯片级解决方案
  5. nand ubi -2 ubi管理下的SLC nand
  6. [转]nchar,char,varchar与nvarchar区别
  7. 再谈 Java中Runnable和Thread的区别
  8. 【struts2】struts2配置文件—struts.xml
  9. 学习笔记(3.23)
  10. oracle 的一些基础查询