Datentypen Über Collection iterieren bringt fehler

knowledge

Bekanntes Mitglied
Mal ne Frage, wieso bekomm ich bei folgendem Code ne Exception? Wenn ich das remove weglasse funktioniert der Code.

Kann es sein weil der Iterator auf der vollständigen Collection erzeugt wurde und wenn ich da was entferne dass dann nicht mehr "passt"?

Java:
Collection c ... // hier Collection zuweisen 
Iterator  it = c.iterator(); 
while(it.hasNext()) {
   c.remove(o);
}
 
Zuletzt bearbeitet von einem Moderator:

knowledge

Bekanntes Mitglied
Hash Set. Und ja: ConcurrentModification. Was bedeutet das und wieso kommt das? Wenn ich innerhalb der Schleife den Iterator neu setze
Java:
it = c.iterator();
dann klappt das alles.

P.S. o ist oben ein Object was ich aus der Collection entferne
 

Noctarius

Top Contributor
Weil du aus der Map löscht und gleichzeitig weiteriterieren willst. Damit fällt eine ConcurrentModificationException die das Problem perfekt beschreibt. Du versuchst neben dem Iterator auch noch Änderungen vorzunehmen (nämlich c.remove() statt iterator.remove())
 

knowledge

Bekanntes Mitglied
Der Iterator modifiziert doch nichts in dem SInne, oder? Warum kann sich der Iterator nicht einfach an die neue größe der Collection anpassen? Also das Problem ist doch das der Iterator am Anfang z.B. über eine Collection der Größe 5 iteriert und dann nur noch über eine der Größe 4, oder?
 

Noctarius

Top Contributor
Das liegt an sich an der Implementierung des Iterators. Können kann man alles aber der Iterator hat nun mal die remove Methode nicht ohne Grund.

Das Problem tritt auf wenn:

1 -> 2 -> 3 (Iterator) -> 4 -> 5

So jetzt schmeissen wir 3 raus, da steht auch der Index des Iterators gerade.

1 -> 2 -> 4 (Iterator) -> 5

Ergo steht der Index des Zählers jetzt weiterhin auf Listenposition 3 dort steht jetzt aber plötzlich der Wert 4 drin. hole ich mir nun den nächsten Eintrag steht dort 5 und nicht wie erwartet 4.
Bei verketteten Listen ist eine ConcurrentModificationException freie Programmierung möglich und auch existent bei Indexbasierten ist es auch möglich aber nicht so sauber machbar.
 
Zuletzt bearbeitet:

knowledge

Bekanntes Mitglied
Hmm, ok. das klappt schon. aber warum ist das sinnvoll eine "manuelle" Manipulation mittels remove hier zu unterbinden?

Also kann jemand ein "praxisnahes" Problem andeuten wenn ich ein manuelles Entfernen zulasse.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Struts: Über Collection iterieren mir Taglibs? Java Basics - Anfänger-Themen 13
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
O Über Map laufen Erklärung Java Basics - Anfänger-Themen 4
U Best Practice Buttons sollen ÜBER Labeln liegen, also quasi im Vordergrund. WIE? Java Basics - Anfänger-Themen 4
AssELAss Über ein Objekt vom Typ BigDecimal iterieren Java Basics - Anfänger-Themen 6
L Über 100e Werte anzeigen Java GUI Java Basics - Anfänger-Themen 1
0 Über CMD die JAVA Datei ausführen? möglich? Java Basics - Anfänger-Themen 8
A Über Jahr iterieren, Freitag der 13. Java Basics - Anfänger-Themen 2
S Über Button Zeichnung ändern Java Basics - Anfänger-Themen 5
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
J Über ... Dialog (Mac OS) Java Basics - Anfänger-Themen 8
L Über abstrakte Klasse auf eine Klasse zugreifen? Java Basics - Anfänger-Themen 6
PINTOR Über IP verschicken Java Basics - Anfänger-Themen 3
D Über ein Interface methoden ansprechen Java Basics - Anfänger-Themen 9
C Über Boolean Static, String ausgeben Java Basics - Anfänger-Themen 3
S Über Bild zeichnen Java Basics - Anfänger-Themen 21
H Mac Menu-Über Programm anpassen Java Basics - Anfänger-Themen 3
P Über HashMap iterieren -> NullPointerException Java Basics - Anfänger-Themen 2
J Array List - Über die Konsole eingeben Java Basics - Anfänger-Themen 1
G Über Button DB Tabelleninhalt löschen Java Basics - Anfänger-Themen 24
M Über einen Button etwas zeichnen lassen Java Basics - Anfänger-Themen 5
G Über undo, copy, cat, paste, delete Funktionen Java Basics - Anfänger-Themen 3
D Über Button abhängig von Auswahl 2 versch. Fenster öffnen Java Basics - Anfänger-Themen 2
Encera Garbage Collection Java Basics - Anfänger-Themen 9
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
M Collection.sort sortiert nicht Java Basics - Anfänger-Themen 7
D public ArrayList(Collection<? extends E> c); Java Basics - Anfänger-Themen 2
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
T Collections Geeignete Collection/Liste/Datenbank Java Basics - Anfänger-Themen 17
E Interface List nicht als Collection an erkannt. Java Basics - Anfänger-Themen 14
F Collection Aufgabe mit LinkedList Java Basics - Anfänger-Themen 3
N Collections Werte aus .txt in einer Collection speichern Java Basics - Anfänger-Themen 11
M Collection Aufgabe Java Basics - Anfänger-Themen 22
Arif Collections Unkonstruiertes Objekt einer Collection hinzufügen Java Basics - Anfänger-Themen 2
W Collection-Problem Java Basics - Anfänger-Themen 35
P Klassen In einer Autoklasse das Objekt Auto mittels Collection Speichern Java Basics - Anfänger-Themen 4
N Collection sortieren/ filtern Java Basics - Anfänger-Themen 7
K Collections Zugriff auf ein bestimmtes Element in der Collection Java Basics - Anfänger-Themen 1
J Objekt in Collection speichern Java Basics - Anfänger-Themen 4
A Interface in Collection (Liste) angeben Java Basics - Anfänger-Themen 2
J Collection Objekt Java Basics - Anfänger-Themen 3
T Collections Zusammengehörende Strings in einer Collection Java Basics - Anfänger-Themen 2
S Frage zu Collection-Generics in Subklassen Java Basics - Anfänger-Themen 6
B Collections Collection soll nur einen bestimmten Datentyp aufnehmen Java Basics - Anfänger-Themen 12
B addAll(Collection<? extends E> c) Java Basics - Anfänger-Themen 9
K Collections Collection für 12 mio Strings Java Basics - Anfänger-Themen 7
Y Collection der eigenen Klasse Java Basics - Anfänger-Themen 10
S Collections Welche Collection ist am geeignetsten? Java Basics - Anfänger-Themen 3
R Passende Collection gesucht Java Basics - Anfänger-Themen 11
G Collections Wahl der richtigen Collection Java Basics - Anfänger-Themen 11
O Frage zu Verständnis von Collection Java Basics - Anfänger-Themen 4
D Scala Iterable zu Java Collection konvertieren Java Basics - Anfänger-Themen 3
D Frage zu Collection und deren Anwendung Java Basics - Anfänger-Themen 2
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
J Collection soll übergeben werden... Java Basics - Anfänger-Themen 7
C Vector - obsolete collection Java Basics - Anfänger-Themen 1
B Iterator und Collection Java Basics - Anfänger-Themen 11
G Java Collection Frameworks Java Basics - Anfänger-Themen 5
D Collection Konvertieren Java Basics - Anfänger-Themen 7
K OOP Aus Collection Objekte bestimmter Subklassen entfernen Java Basics - Anfänger-Themen 7
S Welche Collection? Java Basics - Anfänger-Themen 5
S Collection rückwärts durchsuchen Java Basics - Anfänger-Themen 4
W Wie kann ich auf Object meiner Collection zugreifen Java Basics - Anfänger-Themen 7
J Collection Vector Java Basics - Anfänger-Themen 8
B Collection während Iteration verändern Java Basics - Anfänger-Themen 7
T Collection in collection Java Basics - Anfänger-Themen 6
T Collection von Objekten verschiedener Klassen Java Basics - Anfänger-Themen 4
J Collection ArrayList und mit erweitertem for iterieren Java Basics - Anfänger-Themen 7
J Probleme mit Collection ArrayList Java Basics - Anfänger-Themen 2
C Collection vs. LinkedList, Abstrakt vs. Konkret Java Basics - Anfänger-Themen 9
G Collection<BufImg> in Datei speichern Java Basics - Anfänger-Themen 8
A Collection auslesen ohne Objekttyp zu kennen? Java Basics - Anfänger-Themen 11
G Collection<Strings> - Liste von Strings verwalten Java Basics - Anfänger-Themen 9
S Collection<Typ> sort Java Basics - Anfänger-Themen 4
0x7F800000 elemente aus einer Collection korrekt löschen Java Basics - Anfänger-Themen 8
T Frage zu Vererbung beim Collection-Framework Java Basics - Anfänger-Themen 4
I Frage zu Collection und List Interfaces Java Basics - Anfänger-Themen 2
M Object [][] ist nicht vom Typ Collection? Java Basics - Anfänger-Themen 3
S Collection wie LinkedHashMap Java Basics - Anfänger-Themen 7
J LinkedList, Collection, ArrayList, List. was denn bitte? Java Basics - Anfänger-Themen 6
S Collection Sort Java Basics - Anfänger-Themen 15
A Welche Collection? Java Basics - Anfänger-Themen 13
C Collection in Verbindung mit String.split speicherlastig Java Basics - Anfänger-Themen 20
S Collection in einer Collection Java Basics - Anfänger-Themen 5
A Welche Collection soll ich nehmen? Java Basics - Anfänger-Themen 4
E welche Datenstruktur (Collection) Java Basics - Anfänger-Themen 4
K Collection und Iterator Java Basics - Anfänger-Themen 7
I Bestimmte Variablen in Collection Classes Java Basics - Anfänger-Themen 2
M Source Code von Collection Framework, etc. Java Basics - Anfänger-Themen 3
vogella Cast from Collection.toArray to String[] Java Basics - Anfänger-Themen 2
K Verständnisfrage Collection, ArrayList und Referenzen Java Basics - Anfänger-Themen 4
S Mit Collection<int[]> umgehen Java Basics - Anfänger-Themen 2
S welche collection ? String und object Java Basics - Anfänger-Themen 5
M gibt es eine collection mit definierter maximaler größe Java Basics - Anfänger-Themen 4
G Collection Framework Java Basics - Anfänger-Themen 8
V Mehrdimensionale Collection? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben