.Net LinkedList
hat eine
nice
grundlegende verknüpfte Liste Feature, die mir erlaubt, eine Knotenreferenz, ein "Zeiger" in einer verketteten Liste zu halten sozusagen, und verwenden Sie diese Referenz, um die verknüpfte Liste von dort in einer O (1) -Mode zu navigieren und zu manipulieren. Nämlich:Knotenverweis in verkettete Liste wie. NET hat, um O (1) Artikel einfügen
LinkedList<string> linkedList = new LinkedList<string>();
LinkedListNode<string> cur = linkedList.First;
LinkedListNode<string> rememberThis = null;
do
{
if (...)
rememberThis = cur;
} while ((cur = cur.Next) != null);
if (rememberThis != null)
linkedList.AddAfter(rememberThis, "added-value");
Ich bin Fehler zu sehen, wie ich das gleiche in Java tun, nämlich
- Iterieren durch ein
LinkedList
(dies natürlichO(n)
) - Herstellung der Anmerkung von a Listenknoten
- verwenden, die Knotenreferenz auch nach weiteren Iteration für
O(1)
Insertion
Java macht give me access
zu einem ListIterator
, der mir erlaubt, die Liste um den Gegenstand, an dem ich bin, zu manipulieren, aber ich kann nicht scheinen, weiter zu iterieren, während ich an einem vorherigen Knoten festhalte.
Fehle ich etwas?
Wenn die 'List'-Schnittstelle/Implementierung so kaputt ist, wie Sie es beschreiben, könnte die Java-Welt nicht funktionieren, was eindeutig nicht der Fall ist. Sehen Sie in 'List.iterator()' nach, wie ein Iterator in Java verwendet werden kann. Sie können ein Element verfolgen, über das Sie kommen, und dann später darauf reagieren. –
@TimBiegeleisen Ein Blick auf ['List.iterator()'] (https://docs.oracle.com/javase/8/docs/api/java/util/List.html#iterator--) sagt mir nichts bezüglich meiner Frage. Kannst du genauer sein? Oder - wie Sie behaupten, ich beschreibe "List" als kaputt - lese vielleicht meine vollständige Frage noch einmal? –
Geben Sie Beispiele für Operationen an, die Sie ausführen müssen, was 'LinkedList' nicht ermöglicht. Dann könnte die Frage interessant werden. –