Java的Collectors常见方法

在Java中,Collectors 类是 java.util.stream 包的一部分,它提供了多种静态方法,用于在流(Stream)操作的最后阶段将元素汇总或整理成不同的形式。以下是 Collectors 类中一些常用的方法:

  1. toCollection

    • 将流元素收集到一个指定的 Collection 中。
    List<String> list = stream.collect(Collectors.toCollection(ArrayList::new));
  2. toList

    • 将流元素收集到一个 List 中。
    List<String> list = stream.collect(Collectors.toList());
  3. toSet

    • 将流元素收集到一个 Set 中,去除重复元素。
    Set<String> set = stream.collect(Collectors.toSet());
  4. toMap

    • 将流元素收集到一个 Map 中,需要提供键和值的映射函数。如果有重复的键,需要提供一个合并函数。
    Map<String, Integer> map = stream.collect(Collectors.toMap(键映射函数, 值映射函数));
  5. toMap with merge function

    • 当键冲突时,提供一个合并函数来解决冲突。
    Map<String, Integer> map = stream.collect(Collectors.toMap(键映射函数, 值映射函数, 合并函数));
  6. groupingBy

    • 根据某个属性或函数将流元素分组,并收集到 Map 中。可以与 toMap 结合使用,对分组的结果进行进一步的收集。
    Map<String, List<String>> groupedMap = stream.collect(Collectors.groupingBy(分类函数));
  7. groupingBy with downstream collector

    • 提供下游收集器,对分组后的元素进行更复杂的收集操作。
    Map<String, Set<String>> groupedMap = stream.collect(Collectors.groupingBy(分类函数, Collectors.toSet()));
  8. filtering

    • 过滤流元素,只收集符合条件的元素。
    List<String> filteredList = stream.collect(Collectors.filtering(Predicate, 下游收集器));
  9. collectingAndThen

    • 在收集完成后,对结果进行进一步的处理。
    List<String> processedList = stream.collect(Collectors.collectingAndThen(Collectors.toList(), list -> {
        // 对list进行处理
        return list;
    }));
  10. joining

    • 将流中的元素连接成一个字符串。
    String joinedString = stream.collect(Collectors.joining(", "));
  11. reducing

    • 通过某个连接动作将所有元素汇总成一个汇总结果。
    Optional<Integer> sum = stream.collect(Collectors.reducing(0, Integer::sum));
  12. summingInt/summingLong/summingDouble

    • 对数值流进行求和。
    int sum = stream.collect(Collectors.summingInt(Integer::intValue));
  13. maxBy/minBy

    • 找出流中的最大或最小元素。
    Optional<String> max = stream.collect(Collectors.maxBy(Comparator.naturalOrder()));
  14. counting

    • 计算流中元素的数量。
    long count = stream.collect(Collectors.counting());
  15. partitioningBy

    • 根据谓词对流元素进行分区,返回一个Map,其中键是布尔值,值是元素的集合。
    Map<Boolean, List<String>> partitionedMap = stream.collect(Collectors.partitioningBy(Predicate));

这些是 Collectors 类中一些常用的收集器方法。它们可以帮助你将流中的元素汇总成不同的集合类型,或者进行更复杂的聚合操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值