什么是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
  • 并行流需注意线程安全问题,避免共享可变状态。
相关推荐
小羊没烦恼!19 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
rockmelodies19 小时前
# Windows Server2008 R2 Standard(SP1镜像U盘)重置本地管理员密码【完整详细步骤】
windows·密码破解
kakakahahahaha1 天前
Windows C盘空间不足的安全清理与迁移流程
windows·电脑·笔记本电脑·软件需求·c盘清理
做咩啊~1 天前
远程连接提示:身份验证错误,要求的函数不受支持
windows
百事牛科技1 天前
PPT只读怎么取消?四种情况分别处理
windows·powerpoint
熊明才2 天前
WSL2 网络突然瘫痪(Network is unreachable / 没有 eth0)最短修复指南(2026年9月20日亲测可用)
linux·windows·wsl2
xbzb2 天前
Windows 启动故障修复知识整理:蓝屏 / 无限重启 / 盘符 X / 无 PE 盘
windows
我命由我123452 天前
Mac 操作系统 - 一些使用记录
运维·windows·学习·系统安全·运维开发·mac·学习方法
kakakahahahaha3 天前
Windows Steam 游戏存档在哪里?定位和恢复排查流程
windows·其他·电脑·笔记本电脑·内容运营·软件需求
Xy-unu3 天前
Windows 开启外接显示器 HDR 后外接显示器无信号、无法扩展模式故障记录
windows