Ale*_*iam 2 java sorting java-stream
我已经将2D int数组转换为Stream:
IntStream dataStream = Arrays.stream(data).flatMapToInt(x -> Arrays.stream(x));
Run Code Online (Sandbox Code Playgroud)
现在,我想按升序对列表进行排序.我试过这个:
dataStream.sorted().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我对此感到困惑,因为在我看到的例子中,类似的事情没有错误.
试试吧
dataStream.sorted().boxed().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
因为collect(Collectors.toList())不适用于IntStream.
我也觉得应该是性能通话稍好第一sorted(),然后boxed().
IntStream.collect() 方法具有以下签名:
<R> R collect(Supplier<R> supplier,
ObjIntConsumer<R> accumulator,
BiConsumer<R, R> combiner);
Run Code Online (Sandbox Code Playgroud)
如果您真的想要使用它,您可以:
.collect(IntArrayList::new, MutableIntList::add, MutableIntList::addAll);
Run Code Online (Sandbox Code Playgroud)
正如这里建议的: