Java基础教程(188)函数式编程之Stream输出集合:告别forEach!Java Stream终极集合输出指南

深度分析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代码的关键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值