0

ArrayList理論的には、またはから要素を削除する方が効率的LinkedListですか?

4

3 に答える 3

10

からそれらを削除する方が「簡単」(つまり、より効率的) です。これは、 から削除するには、後続のすべての要素をリスト内の新しい位置に移動LinkedListする必要があるためです。配列の後続のすべての要素に新しい値を割り当てる必要があります。ArrayList連結リストでは、1 つのポインター (二重連結リストでは 2 つ) のみを再割り当てする必要があります。

于 2009-06-23T20:54:34.820 に答える
5

まあ、(二重にリンクされた)リストからの要素の削除はO(1)です。ただし、配列から削除するには、残りの要素を配列内の 1 つ下のスペース (O(n)) にシフトする必要があります。

つまり、リスト内の特定の要素をインデックスで取得するのは O(n) ですが、配列内の特定の要素をインデックスで取得するのは O(1) です。

したがって、実際に削除するには、LinkedList の方が適しています。Array と LinkedList の詳細については、こちらを参照してください。

于 2009-06-23T20:57:28.043 に答える