深度分析Java Stream之输出集合
Java Stream API 提供了强大的数据转换能力,但许多开发者仅了解基础的 collect(Collectors.toList())。本文将深入剖析多种集合输出方式,并附实用示例。
1. 基础集合收集
List转换示例:
List<String> filteredList = list.stream()
.filter(s -> s.length() > 3)
.collect(Collectors.toList());
Set去重示例:
Set<Integer> uniqueSet = numbers.stream()
.collect(Collectors.toSet());
2. 高级集合操作
Map转换示例:
Map<String, Integer> map = products.stream()
.collect(Collectors.toMap(
Product::getId,
Product::getPrice
));
分组收集示例:
Map<Category, List<Product>> grouped = products.stream()
.collect(Collectors.groupingBy(Product::getCategory));
3. 不可变集合创建
Java 16+ 提供了更简洁的toList()方法:
java
List<String> immutableList = stream.toList(); // 不可变集合
4. 性能考量
对于大规模数据,建议使用具体类型声明:
ArrayList<String> result = stream.collect(
Collectors.toCollection(ArrayList::new)
);
5. 复杂收集场景
分区示例:
Map<Boolean, List<Student>> partitioned = students.stream()
.collect(Collectors.partitioningBy(s -> s.getScore() >= 60));
连接字符串示例:
String joined = strings.stream()
.collect(Collectors.joining(", ", "[", "]"));
掌握这些集合输出技巧,能够显著提升代码的简洁性和性能表现。根据具体需求选择合适的收集器,是编写高质量Stream代码的关键。

被折叠的 条评论
为什么被折叠?



