我正在编写一个程序,该程序构建有序的数字金字塔并返回二维数组
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());
我没有例外。为什么这样?