相关疑难解决方法(0)

并行排序List而不在Java 8中创建临时数组

Java 8提供了java.util.Arrays.parallelSort使用fork-join框架并行排序数组的方法.但是没有相应Collections.parallelSort的排序列表.

我可以使用toArray,对该数组进行排序,并将结果存储在我的列表中,但这会暂时增加内存使用量,如果我使用并行排序已经很高,因为并行排序只能为巨额列表付出代价.而不是内存的两倍(列表加上parallelSort的工作内存),我正在使用三次(列表,临时数组和parallelSort的工作内存).(Arrays.parallelSort文档说"算法需要的工作空间不大于原始数组的大小".)

除了内存使用,Collections.parallelSort对于看起来像是一个相当常见的操作也会更方便.(我倾向于不直接使用数组,所以我肯定比Arrays.parallelSort更经常使用它.)

该库可以测试RandomAccess以避免尝试例如快速排序链表,因此这不能成为故意遗漏的原因.

如何在不创建临时数组的情况下并行对List进行排序?

java sorting java-8

30
推荐指数
3
解决办法
5302
查看次数

标签 统计

java ×1

java-8 ×1

sorting ×1