为什么Java 8有Arrays.parallelSort()而不是Collections.parallelSort()?

chi*_*ity 8 java sorting multithreading list java-8

Java 8以重载Arrays.sort()方法的形式引入了用于多线程数组排序的并行算法.

为什么它不提供一个Collections.parallelSort(),用于多线程排序List

Wor*_*mbo 3

AList不一定允许有效地实现与数组相同的并行排序算法。您也许可以将其直接应用于 a ArrayList,但很可能不能应用于 a LinkedList,因为它缺乏有效的随机访问。对于这种列表有有效的多线程排序算法,但它们与随机访问列表不同。

事实上,由于List同步的原因,该接口的线程安全实现可能根本不支持高效的外部多线程排序。为这些提供通用的排序算法是不可能的,事实上,并行算法可能比顺序算法慢。