Frage

In der Theorie ist es effizienter, Elemente aus einem ArrayList zu entfernen oder zu einem LinkedList?

War es hilfreich?

Lösung

Es ist „einfacher“ (das heißt, effizienter), um sie von einem LinkedList zu entfernen, weil die Entfernung von einem ArrayList erfordert in der alle weiteren Elemente in eine neue Position bewegt Listen alle nachfolgenden Elemente des Arrays zugeordnet werden muss neuer Wert. Mit einer verknüpften Liste, nur ein Zeiger (oder zwei, mit einer doppelt verketteten Liste) muss neu zugeordnet werden.

Andere Tipps

Nun, das Entfernen eines Elements aus einer (doppelt-Linked) Liste ist O (1). Aber die Entfernung von einer Anordnung erfordert, dass die verbleibenden Elemente werden nach unten verschoben, um ein Feld in dem Array, die O (n) ist.

Das heißt, ein bestimmtes Element in einer Liste immer durch den Index ist O (n), während ein bestimmtes Element in einem Array von Index zu erhalten ist O (1).

Also, die für die tatsächliche Entfernung, wird LinkedList besser sein. Mehr Infos gibt es auf Array der im Vergleich zu LinkedList hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top