什么是Stream流

Stream流的概念

Stream是Java 8引入的API,用于以声明式方式处理集合数据(如过滤、映射、排序等)。它允许高效、并行化的操作,无需显式编写循环代码。Stream不存储数据,而是通过操作管道(如filter、map)对数据源(集合、数组等)进行计算。

Stream流的特点

  • 惰性求值:中间操作(如filter)不会立即执行,只有终端操作(如collect)触发时才会处理数据。
  • 无存储:Stream本身不存储数据,仅代表数据源的视图。
  • 函数式风格:支持链式调用,代码更简洁。
  • 可并行化 :通过parallel()方法轻松实现并行处理。

常用操作示例

创建Stream
java 复制代码
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream(); // 从集合创建
Stream<Integer> nums = Stream.of(1, 2, 3); // 直接生成
中间操作
java 复制代码
stream.filter(s -> s.startsWith("a")) // 过滤
      .map(String::toUpperCase)       // 映射
      .sorted();                      // 排序
终端操作
java 复制代码
long count = stream.count(); // 计数
List<String> result = stream.collect(Collectors.toList()); // 收集为List
stream.forEach(System.out::println); // 遍历

并行流

通过parallelStream()parallel()方法启用并行处理:

java 复制代码
list.parallelStream().forEach(System.out::println); // 并行处理

注意事项

  • Stream只能被消费一次,重复使用会抛出IllegalStateException
  • 并行流需注意线程安全问题,避免共享可变状态。
相关推荐
王维同学4 小时前
[原创][Windows C++]Explorer Shell 扩展、图标覆盖与 COM 服务器定位
c++·windows·注册表
广州灵眸科技有限公司15 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
Ctrl+Z侠20 小时前
.NET WebApi Windows / Linux Docker 全链路压测与瓶颈定位 0 到 1 教程
linux·windows·.net
王维同学21 小时前
[原创][Windows C++]LSA 认证、安全与通知包的注册表枚举
c++·windows·安全
YCOSA202521 小时前
雨晨 Windows 11 IOT 企业版 LTSC 24H2 轻装 2合1 26100.8968
windows·物联网
汤姆yu1 天前
CodeGeeX 4完整安装与实操使用全指南
人工智能·windows·ai·智能体·视频模型
吐了啊取名字太难1 天前
美颜系统AI修图本地跑并支持Mac、win、安卓、iOS不卡顿
android·人工智能·windows·数码相机·mac·ai编程
筱羽_筱羽1 天前
VS2022 编译SOEM
windows·visualstudio·soem
love530love1 天前
【排障实录】GPT Desktop (Codex) 开启 WSL 智能体模式后无法启动?手把手教你修复
人工智能·windows·gpt·agent
WangWei_CM1 天前
Session Manager 的 BootExecute、SetupExecute 与 Execute 多字符串解析
windows