ArrayList或LinkedList更适合排序吗?

Ser*_*yan 23 java sorting data-structures

我想使用需要不时排序的数据结构.数据结构的大小几乎不会超过1000个项目.

哪一个更好 - ArrayList或者LinkedList

哪种排序算法更好用?

ass*_*ias 27

直到Java 7,它没有区别,因为Collections.sort会将列表的内容转储到数组中.

对于Java 8,使用a ArrayList应该稍快一些,因为Collections.sort它将调用List.sortArrayList具有直接对后备阵列进行排序的专用版本,从而保存副本.

所以底线ArrayList是更好的,因为它提供了类似或更好的性能,具体取决于Java的版本.


cor*_*iKa 8

如果你要使用java.util.Collections.sort(List)那么它真的没关系.

如果List没有实现RandomAccess,那么它将被转储到List 无论如何,该列表将被转储到数组中以进行排序.

(谢谢你让我诚实的拉尔夫.看起来我混淆了排序和洗牌的实现.他们足够接近同样的事情吧?)

  • 这不是java文档所说的或实现的(或至少我如何理解它们):JavaDoc"此实现将指定的列表转储到数组中,对数组进行排序,并迭代重置每个元素的列表" - 它无论是否实现RandomAccess,都会转储到Array(而不是List)中. (3认同)