
1.Stream流是什么Stream 是JDK 8新增的流式编程 API专门用来简化集合 / 数组的数据处理。分为两大类中间操作链式调用延迟执行返回新流可连续调用终端操作触发整个流执行执行后流关闭不能再使用.二、完整方法分类 功能 示例一、获取流创建流方法作用集合.stream()普通集合获取串行流最常用集合.parallelStream()获取并行流多线程处理数据Arrays.stream(数组)数组转流Stream.of(元素...)快速创建流ListString list new ArrayList(); StreamString stream list.stream();二、中间操作链式调用不立即执行1.map映射一对一转换重点核心每个元素转为另一个值 / 类型元素数量不变常用场景对象提取字段数值计算、字符串加工类型转换对象→字符串、字符串→数字等// 提取字段 list.stream().map(item - item.getName()); // 数值运算 list.stream().map(n - n * 2); // 类型转换 list.stream().map(Integer::parseInt);2.filter过滤核心按条件剔除元素保留符合条件的// 保留大于5的数字 stream.filter(n - n 5);3.sorted排序sorted()自然升序默认sorted(比较器)自定义排序降序、按对象字段排序stream.sorted(); stream.sorted((a,b) - b - a); // 降序4.distinct去重基于equals()去除重复元素stream.distinct();5.limit截取截取前 N 个元素stream.limit(3); // 只取前3个6.skip跳过跳过前 N 个元素stream.skip(2); // 跳过前2个7.flatMap扁平化一对多把嵌套集合拆成单层流一个元素变多个元素和map区分map一对一flatMap一对多// 把 ListListInteger 拆成普通 Integer 流 stream.flatMap(Collection::stream);8. 基础类型专用 map优化装箱mapToInt()转IntStreammapToLong()转LongStreammapToDouble()转DoubleStream多用于数值求和、求平均等计算。三、终端操作触发执行结束流1.forEach遍历逐个消费元素做输出、执行逻辑stream.forEach(System.out::println);2.collect收集最常用把流转回集合 / 字符串 / 分组等结构Collectors.toList()收集为 ListCollectors.toSet()收集为 Set自动去重Collectors.toMap()收集为 MapCollectors.groupingBy()分组Collectors.joining()字符串拼接// 收集为Set你代码里的用法 stream.collect(Collectors.toSet());3.count统计数量返回流中元素总个数返回值longlong num stream.count();4.max/min最大 / 最小值获取流中最值返回Optional防止空指针stream.max(Integer::compareTo); stream.min(Integer::compareTo);5. 匹配判断返回 booleananyMatch(条件)任意一个满足条件 → trueallMatch(条件)全部满足条件 → truenoneMatch(条件)全部不满足条件 → truestream.anyMatch(n - n 10);6.reduce归约聚合把所有元素反复合并为单个结果常用于求和、求乘积、字符串拼接// 求和 stream.reduce(0, Integer::sum);7.findFirst/findAny取值findFirst()获取流第一个元素findAny()获取任意一个元素并行流常用三、核心口诀 区分方便记忆map提取字段、转换值、换类型一对一filter按条件筛数据sorted排序、distinct去重limit/skip截取、跳过flatMap拆嵌套集合一对多collect流转回集合收尾必备其余遍历、统计、匹配、取最值