Methoden Iterator über ArrayList

Thot

Mitglied
Hallo,
ich habe eigentlich eine relative simple Anwendung:
Ich habe eine ArrayList die ticks heißt. Und folgende Methode:
Java:
public int removeInvalidTicks() {
		int z=0;
		Iterator<Tick> iter = ticks.iterator();
		while (iter.hasNext())
		{
			Tick tick1 = iter.next();
			if (tick1.getAskRate() == BigDecimal.ZERO || tick1.getBidRate() == BigDecimal.ZERO || tick1.getMidRate() == BigDecimal.ZERO)
				{
					ticks.remove(tick1);
					z++;
				}
		}
		return z;
	}

Also ich schau ob gewisse Dinge ZERO sind und falls ja, remove ich das Ticket und erhöhe z, damit ich die Anzahl der entfernten Elemente mitteilen kann.

Allerdings erhalte ich eine: ConcurrentModificationException.

Aber warum? Ich sehe leider den Fehler nicht.

Vielen Dank für die Hilfe!
 
Habs schon, danke.

Durch meine ungünstige Bezeichnung ist mir der Fehler nicht aufgefallen. Natürlich muss ich den Iterator verwenden.

Danke!
 
Du darfst keine Elemente entfernen, wenn du darüber iterierst. Das funktioniert mit einem Iterator nicht.

Es kommt auf den Iterator drauf an bzw. wie dieser das remove implementiert. Der ListIterator z.B. kann auch löschen und hinzufügen. Hier in dem Beispiel stimmt allerdings die Aussage
 
Zuletzt bearbeitet:

Zurück
Oben