Hallo,
Ich habe eine ArrayList<Integer> und einen Iterator<Integer> über dieser Liste.
Wenn ich also einen neue Klasse mit der Liste erstelle, bekomme ich wie erwartet schön meine Integer Zahlen ausgegeben, so wie ich das auch erwartet habe.
Wenn ich aber explizit die next() und hasNext() Methoden des Iterators aufrufe, scheint da irgendwas nicht ganz zu stimmen, mein hasNext() liefter immer true, mein next() lieftert immer den selben (ersten Wert) der ArrayList.
Hier mein Iterator (primeList ist die ArrayList<Integer>):
Wieso liefert mein next() immer nur den ersten Wert der Liste, obwohl der Iterator scheinbar korrekt funktioniert?
Ich habe eine ArrayList<Integer> und einen Iterator<Integer> über dieser Liste.
Wenn ich also einen neue Klasse mit der Liste erstelle, bekomme ich wie erwartet schön meine Integer Zahlen ausgegeben, so wie ich das auch erwartet habe.
Wenn ich aber explizit die next() und hasNext() Methoden des Iterators aufrufe, scheint da irgendwas nicht ganz zu stimmen, mein hasNext() liefter immer true, mein next() lieftert immer den selben (ersten Wert) der ArrayList.
Hier mein Iterator (primeList ist die ArrayList<Integer>):
Java:
public Iterator<Integer> iterator() {
return new Iterator<Integer>() {
private int k=0;
public boolean hasNext() {
return k<primeList.size();
}
public Integer next() {
return primeList.get(k++);
}
public void remove() {
throw new UnsupportedOperationException("not supported");
}
};
}
Wieso liefert mein next() immer nur den ersten Wert der Liste, obwohl der Iterator scheinbar korrekt funktioniert?