Stream

浏览该分类下的所有文章

Lambda表达式与流(Stream) API

本文概述了 Java 8 引入的 Lambda 表达式和 Stream API,阐述 Lambda 作为匿名函数实现函数式接口的方式,使集合操作更简洁;介绍 Stream 通过流水线式的中间、终结操作实现顺序或并行的数据处理,并给出过滤计数等示例。进一步分析了 Lambda 在编译后生成闭包类、Stream 的管道模型等内部机制。最后提出最佳实践,如避免在 Lambda 中修改外部变量、合理使用并行流以及区分中间与终结操作,以规避性能和行为问题。全文强调掌握这两项特性可提升 Java 代码的可读性、维护性和执行效率。

Java8新特性之Stream流

Stream 是 Java 8 处理集合的核心抽象,提供惰性求值、不可变数据源、可并行执行等特性。文章先介绍了 Stream 的分类(无状态/有状态、短路/非短路),随后列举了五种常用创建方式:Collection 的 stream()/parallelStream()、Arrays.stream、Stream.of/iterate/generate 以及 BufferedReader.lines、Pattern.splitAsStream。接着详细说明了中间操作——filter、limit、skip、distinct、map、flatMap、sorted、peek 等的使用场景和示例。随后阐述了终止操作,包括匹配/查找(allMatch、anyMatch、findFirst 等)、规约(reduce)以及收集(collect),并通过 Collectors 提供的 toList、toSet、toMap、joining、counting、summing、averaging、summarizing 等方法展示了如何将流结果转化为常用容器或统计信息。全文以代码示例为主,帮助读者快速掌握 Stream 的创建、转换、过滤、排序、终止及收集全过程。