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
?
由於無論如何地圖將包含對象,有什麼可以獲得? –