ArrayList或LinkedList

时间:2012-03-06 14:48:21

标签: java

  

可能重复:
  ArrayList Vs LinkedList
  ArrayList vs. LinkedList which one is better for sorting

假设我们有100个字符串(名称)并想要对它们进行排序,哪个是ArrayList和LinkedList中的首选 偏好的原因是什么?

4 个答案:

答案 0 :(得分:6)

使用Collections API进行排序无关紧要。如果你看一下Collections.sort的实现:

public static <T extends Comparable<? super T>> void sort(List<T> list) {
    Object[] a = list.toArray();
    Arrays.sort(a);
    ListIterator<T> i = list.listIterator();
    for (int j=0; j<a.length; j++) {
        i.next();
        i.set((T)a[j]);
    }
}

您可以看到它执行以下操作:

  1. 使用List.toArray
  2. 创建列表副本
  3. 使用Arrays.sort方法对数组进行排序
  4. 更新列表(例如,将阵列复制回列表)

答案 1 :(得分:2)

取决于什么样的种类。

如果您要在开头插入/检索/删除很多,则ArrayLists很慢。 (大涟漪)

如果要在索引处插入/检索/删除,LinkedLists会很慢。

答案 2 :(得分:1)

应根据发生的操作做出实施选择。

请参阅here

答案 3 :(得分:1)

http://commons.apache.org/collections/api-3.1/org/apache/commons/collections/list/TreeList.html

这可以让您了解每种类型列表的操作速度。显然,根据您的数据,您可能会发现一个操作比另一个更好(它们各自都有它们的优点和缺点)。