2012-03-06 12 views
1

可能性の重複:
ArrayList Vs LinkedList
ArrayList vs. LinkedList which one is better for sortingのArrayListまたはLinkedListの

我々は100の文字列(名前)を持っているとのArrayListとLinkedListの外に好まれている1、それらをソートしたいとします この設定の理由は?

+2

100要素だけで、あなたが選んだ違いの盲目的なビットを作ることはほとんどありません。 – skaffman

+0

@ skaffman..that理解しています...しかし、私は一般的な答えを探していました。例として100を取っただけです...私は例として百万を取ったでしょう...入力のためにありがとう –

答えて

2

どのような種類のソートに依存しますか。

最初にたくさん挿入/取り出し/削除する場合は、配列リストが遅くなります。 (大きなリップル)

インデックスに挿入/検索/削除しようとすると、リンクされたリストが遅くなります。あなたの操作は、リストの種類ごとにどのように速いのアイデアを提供します

+0

ありがとうinfo.evenこれも私が探している –

+1

ソートアルゴリズムをゼロから実装する時間を無駄にしない限り、この情報はあなたを助けません。たとえそうであっても、リストを配列にコピーして配列をソートすることで、より効率的な並べ替えを得ることができます。 –

+0

@StephenCあなた自身の並べ替えを実装することは時間の無駄だとは確信していません... – varatis

1

実装の選択は、発生する操作に基づいて行う必要があります。

hereを参照してください。

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. Arrays.sortメソッドを使用を使用してリストのコピーを作成します。配列を並べ替える
  3. リストを更新する(リストをリストにコピーするなど)
+0

私も同じと思っていた...疑念をクリアするためにありがとう! –

関連する問題