Collections.sort()和使用流排序之间有什么区别?

时间:2019-07-16 12:36:43

标签: java

我正在编写一个程序,该程序构建有序的数字金字塔并返回二维数组

public int[][] buildPyramid(List<Integer> inputNumbers) {
...
}

本单元测试

@Test(expected = CannotBuildPyramidException.class) // class doen't have any logic, just extends RintimeException
    public void buildPyramid8() {
        List<Integer> input = Collections.nCopies(Integer.MAX_VALUE - 1, 0);
        // run
        int[][] pyramid = pyramidBuilder.buildPyramid(input);
        // assert (exception)
    }

如果我使用传统方法不起作用  Collections.sort(inputNumbers) 所以我有一个例外

Java.lang.Exception: Unexpected exception, expected<com.alex.demo.tasks.pyramid.CannotBuildPyramidException> but was<java.lang.OutOfMemoryError>

但是如果我使用 List<Integer> sorted = inputNumbers.stream().sorted().collect(Collectors.toList()); 我没有例外。为什么这样?

0 个答案:

没有答案