java 没有映射器的流收集器?

java stream Collectors without mapper?

我想用整数调用 Collectors.summarizingInt。到目前为止我看到的例子是在一个有(比如说)雇员的集合上,然后被称为 collect(Collecters.summorizingInt(Employee::getWage))。对于裸整数 summorizingInt 需要一个参数,所以我可以做 collect(Collectors.summarizingInt((i) -> i)) 但是提供一个自我映射器感觉有点奇怪。

有其他选择吗?

Set<Integer> integers;
integers.stream().collect(
  Collectors.summarizingInt(Integer::intValue));

另一种选择是将 mapToInt() to convert it to the IntStream and then call summaryStatistics() 组合在其上:

 IntSummaryStatistics summaryStatistics = Set.of(1, 3, 4)
                .stream()
                .mapToInt(Integer::intValue)
                .summaryStatistics();