In C++, ich würde manchmal Objekte in einer verknüpften Liste speichern. Ich würde das Objekt mit einem Iterator verknüpfen, der auf seine Position zeigt. Mit dem Iterator könnte ich dann das Objekt aus der verknüpften Liste in O (1) -Zeit entfernen. Die Operation ist O (1), weil die Liste nur die Zeiger auf die vorherigen und nächsten Elemente in der Liste aktualisiert. Die C++ - Methode, über die ich rede: http://www.cplusplus.com/reference/list/list/erase/Löschen Sie ein beliebiges Element aus einer verketteten Liste in O (1) - Java vs C++
Gibt es eine Möglichkeit, dies mit der gleichen Komplexität O (1) in Java zu tun?
LinkedList scheint nachfolgende Elemente zu verschieben: https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#remove(int)
Vielleicht eine andere Java-Klasse gibt es dies zu erreichen?
Dank
Wenn Sie über die Geschwindigkeit besorgt sind, verwenden Sie eine verkettete Liste mit Vorsicht. Sicher, Sie können leicht einfügen und entfernen, aber so ziemlich alles andere hat einen Preis. Manchmal ziemlich kräftig. Zum einen sind diese verknüpften Listenelemente überall und machen eine wirklich schlechte Lokalität aus. Die Fähigkeit der CPU, vorherzusagen und zu cachen, geht in den Crapper. – user4581301