java - Collections.sort() 和使用流排序有什么区别?
问题描述
我正在编写一个构建排序数字金字塔并返回二维数组的程序
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());
我没有例外。为什么这样?
解决方案
推荐阅读
- reactjs - 在这种情况下,道具是如何传递的?
- spring-boot - 我们可以在spring boot项目中使用多个数据源和jdbi吗
- python - 在纹理完整的衣服数据集中生成随机颜色
- ruby-on-rails - Ruby to_s 没有将整数转换为字符串
- python - AttributeError:“WindowManager”对象没有属性“createWindow”
- html - 用户流和现代导航
- ios - react-native-modal-selector 内部使用的警报正在立即关闭
- visual-studio-code - VScode Mac错误加载webview:错误:无法注册服务工作者
- python - 自定义标签映射熊猫
- python - 计算每个唯一 ID 的行驶距离总和