相关疑难解决方法(0)

如何在Java 8中找到N个数字中最大的M个数字?

IntStream可能是最简单的方法,但我只能选择最小的M数字,如下所示:

public class Test {
    private static final int[] arr = {5, 3, 4, 2, 9, 1, 7, 8, 6};

    public static void main(String[] args) throws Exception {
        System.out.println(Arrays.asList(IntStream.of(arr).sorted().limit(5).boxed().toArray()));
    }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,考虑到算法的复杂性并假设N >> M,"排序+限制"方法只有O(N log(N))的复杂度.

我认为最好的复杂性可能达到O(N log(M)),但我不知道Java 8是否有这种流方法或收集器.

java algorithm java-8 java-stream

3
推荐指数
1
解决办法
958
查看次数

标签 统计

algorithm ×1

java ×1

java-8 ×1

java-stream ×1