Ich habe ein Problem mit einem Teil meiner Hausaufgaben für CS. Ich muss eine verknüpfte Liste in Java schreiben und dann nur die ungeraden Zahlen mit einem Iterator wiederholen. Im Wesentlichen muss eine ForEach-Schleife nur durch ungerade Zahlen durchlaufen.Iterate durch eine verknüpfte Liste in Java beim Filtern direkt in der nächsten() Methode?
Bisher habe ich dies nur in meiner Klasse LinkedList:
public class Iterator implements java.util.Iterator<Integer> {
private Node nextNode;
public Iterator(){
nextNode = head_;
}
@Override
public boolean hasNext() {
return (nextNode != null);// && (nextNode.data_ % 2 != 0);
}
@Override
public Integer next() {
if (!hasNext()) throw new NoSuchElementException();
Integer data = nextNode.data_;
nextNode = nextNode.next_;
return data;
}
public void remove(){
throw new UnsupportedOperationException();
}
}
public Iterator iterator() {
return new Iterator();
}
Wenn ich Kommentar- && (nextNode.data_ % 2 != 0);
, dann wird nur die erste Zahl (die unebene werden passiert) gedruckt wird. Ich habe auch versucht, dies in der nächsten() Methode zu implementieren, aber ohne Erfolg.
Bitte geben Sie mir einen Tipp, was Sie weiter versuchen sollten.
// Spätere Bearbeitung: Ich habe nicht erwähnt, dass die verknüpfte Liste, die ich filtern möchte, aus Zufallszahlen besteht und nicht sortiert ist.
Beginnen Sie mit 0 oder 1? – Meier