Java 8 中是否有任何方法可以在原始流上使用Stream::collect(Collector) ?
通常Stream<Integer>
作为示例有两种收集方法:
<R,A> R collect(Collector<? super T,A,R> collector)
<R> R collect(Supplier<R> supplier, BiConsumer<R,? super T> accumulator, BiConsumer<R,R> combiner)
但是IntStream
只有一种收集方法:
现在作为示例代码,我有以下内容:
@Override
public void run() {
result = LongStream.range(1, maximum).boxed()
.collect(Collectors.toMap(i -> i, i -> (int)Iterators.longStream(new CollatzGenerator(i)).count()))
.entrySet().stream()
.max(Comparator.comparingLong(Map.Entry::getValue))
.get().getKey();
}
如您所见,我首先将原语装箱以便能够使用Collectors.
方法。
有什么方法可以使用原语并且仍然具有相同的代码Collectors.toMap
吗?