Hi Leute,
habe grade folgendes Problem.
Ich möchte die "ArrayList<Mitgliedschaft> mitglieder " iterieren lassen und jedes Objekt das mein Kriterium, der Monat soll der angegebene Monat sein, erfüllt soll in die Liste "ArrayList<Mitgliedschaft> entfernt" eingetragen werden und anschließen aus der Liste mitglieder gelöscht werden...
das Löschen funktioniert aber leider nicht so, wie ich es mir vorgestellt habe, nämlich überhaupt nicht.. ich bekomme folgende Fehlermeldung ausgegeben:
java.util.NoSuchElementException und ich habe auch mal
java.util.ConcurrentModificationException bekommen.
hier mal der code
habe grade folgendes Problem.
Ich möchte die "ArrayList<Mitgliedschaft> mitglieder " iterieren lassen und jedes Objekt das mein Kriterium, der Monat soll der angegebene Monat sein, erfüllt soll in die Liste "ArrayList<Mitgliedschaft> entfernt" eingetragen werden und anschließen aus der Liste mitglieder gelöscht werden...
das Löschen funktioniert aber leider nicht so, wie ich es mir vorgestellt habe, nämlich überhaupt nicht.. ich bekomme folgende Fehlermeldung ausgegeben:
java.util.NoSuchElementException und ich habe auch mal
java.util.ConcurrentModificationException bekommen.
hier mal der code
Code:
/**
* Entferne alle Mitglieder aus der Sammlung des Vereins, die im
* angegebenen Monat Mitglied geworden sind, und liefere sie in
* einem getrennten Sammlungsobjekt zurück.
* @param monat Der Monat des Beitritts
* @param jahr Das Jahr des Beitritts
* @return die neuen Mitglieder des gegebenen Monats
*/
public ArrayList<Mitgliedschaft> entfernen(int monat, int jahr)
{
ArrayList<Mitgliedschaft> entfernt = new ArrayList<Mitgliedschaft>();
if(monat < 1 || monat > 12) {
System.out.println("Der Monat "+monat+" ist ungülig! Muss im Bereich von 1 bis 12 liegen!");
return entfernt;
}
else {
Iterator<Mitgliedschaft> it = mitglieder.iterator();
while(it.hasNext()) {
if((it.next().gibMonat() == monat) && (it.next().gibJahr() == jahr)) {
entfernt.add(it.next());
mitglieder.remove(it.next());
}
}
return entfernt;
}
}