S
Schlauppi
Gast
Hallo zusammen,
ich habe eine kleine Frage zum Iterator und der foreach Schleife.
Ich habe eine Klasse, nennen wir diese einfach mal Books, in welcher eine ArrayList von Book Elementen ist. Die Klasse Books hat Iterable<Book> implementiert.
In einer andere Klasse würde ich jetzt gerne durch einme Books Instanz durchgehen mit Foreach und einzelne Elemente entfernen. Leider schlägt dies fehl, da der Iterator nichtmehr weiter machen kann nach dem entfernen eines Elementes.
Sehe ich das richtig, das mir hier keine andere Wahl bleibt als mit einer einfache For Schleife durch die elemente selber zu gehen und den Index zu erniedrigen wenn was gelöscht wurde?
Oder gibt es doch eine Möglichkeit mit dem Iterator?
Grüße
ich habe eine kleine Frage zum Iterator und der foreach Schleife.
Ich habe eine Klasse, nennen wir diese einfach mal Books, in welcher eine ArrayList von Book Elementen ist. Die Klasse Books hat Iterable<Book> implementiert.
Code:
public class Books implements Iterable<Book> {
private List<Book> list = new java.util.ArrayList<Book>();
...
public Iterator<Book> iterator() {
return list.iterator();
}
In einer andere Klasse würde ich jetzt gerne durch einme Books Instanz durchgehen mit Foreach und einzelne Elemente entfernen. Leider schlägt dies fehl, da der Iterator nichtmehr weiter machen kann nach dem entfernen eines Elementes.
Code:
for(Book b : books) {
if(irgendeine Abfrage) {
books.remove(b);
}
}
Sehe ich das richtig, das mir hier keine andere Wahl bleibt als mit einer einfache For Schleife durch die elemente selber zu gehen und den Index zu erniedrigen wenn was gelöscht wurde?
Oder gibt es doch eine Möglichkeit mit dem Iterator?
Grüße