Stream也是支持类似集合的遍历和匹配元素的,只是Stream中的元素是以Optional类型存在的。Stream的遍历、匹配非常简单。

// import已省略,请自行添加,后面代码亦是public class StreamTest {public static void main(String[] args) {List<Integer> list = Arrays.asList(7, 6, 9, 3, 8, 2, 1);// 遍历输出符合条件的元素list.stream().filter(x -> x > 6).forEach(System.out::println);// 匹配第一个Optional<Integer> findFirst = list.stream().filter(x -> x > 6).findFirst();// 匹配任意(适用于并行流)Optional<Integer> findAny = list.parallelStream().filter(x -> x > 6).findAny();// 是否包含符合特定条件的元素boolean anyMatch = list.stream().anyMatch(x -> x > 6);System.out.println("匹配第一个值:" + findFirst.get());System.out.println("匹配任意一个值:" + findAny.get());System.out.println("是否存在大于6的值:" + anyMatch);}
}

Java8 Stream详解~遍历/匹配(foreach/find/match)相关推荐

  1. Java8 Stream详解~筛选:filter

    筛选,是按照一定的规则校验流中的元素,将符合条件的元素提取到新的流中的操作. 「案例一:筛选出Integer集合中大于7的元素,并打印出来」 public class StreamTest {publ ...

  2. Java8 Stream详解~Stream 创建

    Stream可以通过集合数组创建. 1.通过 java.util.Collection.stream() 方法用集合创建流 List<String> list = Arrays.asLis ...

  3. Java8 Stream详解~ 提取/组合

    流也可以进行合并.去重.限制.跳过等操作. public class StreamTest {public static void main(String[] args) {String[] arr1 ...

  4. Java8 Stream详解~排序:sorted

    sorted,中间操作.有两种排序: sorted():自然排序,流中元素需实现Comparable接口 sorted(Comparator com):Comparator排序器自定义排序 「案例:将 ...

  5. Java8 Stream详解~收集(collect)

    collect,收集,可以说是内容最繁多.功能最丰富的部分了.从字面上去理解,就是把一个流收集起来,最终可以是收集成一个值也可以收集成一个新的集合. 1 归集(toList/toSet/toMap) ...

  6. Java8 Stream详解~归约(reduce)

    归约,也称缩减,顾名思义,是把一个流缩减成一个值,能实现对集合求和.求乘积和求最值操作. 「案例一:求Integer集合的元素之和.乘积和最大值.」 public class StreamTest { ...

  7. Java8 Stream详解~映射(map/flatMap)

    映射,可以将一个流的元素按照一定的映射规则映射到另一个流中.分为map和flatMap: map:接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素. flatMap:接收一个 ...

  8. Java8 Stream详解~聚合(max/min/count)

    max.min.count这些字眼你一定不陌生,没错,在mysql中我们常用它们进行数据统计.Java stream中也引入了这些概念和用法,极大地方便了我们对集合.数组的数据统计工作. 「案例一:获 ...

  9. Java8 Stream详解~Stream概述

    Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利. 那么什么是Stream? Stream将要处 ...

最新文章

  1. JavaScript七种非常经典的创建对象方式
  2. 现在的年轻人。。。到处都是套路。。。
  3. 【错误记录】PyCharm 中从 GitHub 中 Clone 代码到本地报错 ( OpenSSL SSL_read: Connection was reset, errno 10054 )
  4. OpenResty 概要及原理科普
  5. 【MM配置】Pricing 采购定价 2
  6. C语言数据结构(大话数据结构——笔记1)数据结构绪论、算法、线性表
  7. 关于 redis.properties配置文件及rule
  8. iOS之实现“摇一摇”与“扫一扫”功能
  9. Apollo配置中心原理简介
  10. 7 centos 源码安装samba_centos 7 安装 samba 服务
  11. SAP CRM和Cloud for Customer订单中的业务伙伴的自动决定机制
  12. Oracle创建表空间、用户、分配权限、导出、导入数据
  13. android倒计时像音乐,Android实现倒计时的几种方式
  14. Windows10 查看电脑关机时间(提交忘记打卡申请必备)
  15. T6 v6.2puls1 安装了最新补丁之后采购发票结算之后入库单价税合计有1分差额
  16. 使用python发邮箱遇到的问题
  17. (开源)带有笔顺的字体
  18. 坐标转换 四参数/七参数/正形变换 ∈ C# 编程笔记
  19. 研究生放假因疫情未按时返回,扣助研补贴!实验室奇葩规定引热议
  20. percona-tool文档说明(5)- 复制类

热门文章

  1. 论文浅尝 - IJCAI | Knowledge is NOT always you need: 外部知识注入预训练模型的利与弊...
  2. 设置DIV半透明CSS代码:
  3. C++ Primer 第10章 习题10.24
  4. Swiftfox:极速的冲浪体验
  5. 从文本分类问题中的特征词选择算法追踪如何将数学知识,数学理论迁移到实际工程中去...
  6. 牛客16437 买铅笔
  7. 【剑指offer】面试题42:连续子数组的最大和(java)
  8. android view使用方法,android – 如何使用getView()方法,它在哪里被调用?
  9. js json过滤_如何在浏览器不崩溃的情况下过滤 200 万行数据?
  10. mysql和oracle转换_转MySql 与Oracle区别