Erweitern iterativer Sammlungen durch dynamische Elementaddition
Die Standard-Java-Iterator-API gewährleistet sichere Sammlungsänderungen während der Iteration und verhindert externe Änderungen an der Sammlung. Bestimmte Szenarien erfordern jedoch möglicherweise das Hinzufügen dynamischer Elemente zur Sammlung während der Iteration.
Einschränkungen des Java-Iterators
Das Java-Tutorial warnt ausdrücklich davor, Sammlungen während der Iteration zu ändern, und besagt: „ Iterator.remove ist die einzige sichere Möglichkeit, eine Sammlung während der Iteration zu ändern.“ Jede andere Änderung kann zu nicht spezifiziertem Verhalten führen.
Alternative Strategie: Dynamisches Enqueuing
Um diese Einschränkungen zu umgehen, erwägen Sie die Erstellung einer Warteschlange (z. B. java.util.LinkedList). das zunächst die Elemente enthält, über die iteriert werden soll. Wenn bestimmte Elemente während der Iteration eine Bedingung erfüllen, werden zusätzliche Elemente am Ende der Warteschlange eingereiht.
Verwenden Sie die Methode „remove()“, um Elemente aus der Warteschlange inkrementell zu verarbeiten und die Iteration aufrechtzuerhalten, bis die Warteschlange leer ist. Dieser Ansatz emuliert eine standardmäßige iterative Schleife mit der Möglichkeit, Elemente dynamisch hinzuzufügen.
Beispiel-Workflow:
Diese Strategie stellt sicher, dass hinzugefügte Elemente auch einer Iteration unterzogen werden, wodurch potenzielle Endlosschleifen kontrolliert und ein konzeptionell sauberer iterativer Prozess aufrechterhalten wird.
Das obige ist der detaillierte Inhalt vonWie kann ich während der Iteration in Java dynamisch Elemente zu einer Sammlung hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!