Ich versuchte, dies auszuarbeiten, konnte aber nicht.wie auf jedes zweite Element in Java iterieren
Ich brauche eine Klasse zu implementieren, die Iterator implementiert und nimmt Iterator als Konstruktorparameter,
1) Sie benötigen jeden 2. hasNext
2) zurückgeben müssen Grundsätzlich ist jedes zweite nächste Element zurückzukehren
Ich versuche, gegebenen Iterator zu benutzen, der vom Konstruktor erhalten wird, aber wenn ich nächstes Element auf hasnext verwende, erhöhe ich den Iterator tatsächlich um ein Element. Das Problem tritt auf, wenn ich unabhängig auf hasNext oder next Element zugreife und nicht alle Testfälle überlasse. Jede Lösung oder Idee zu diesem
Vorlage und meine erwartete Umsetzung sieht aus wie folgt:
public class AlternateIterator<T> implements Iterator<T>
public AlternateIterator(Iterator<T> target)
public boolean hasNext() {
boolean returnvalue = false;
if(iterator.hasNext()) {
iterator.next();
returnvalue = iterator.hasNext();
}
return returnvalue;
}
@Override
public T next() {
T object = null;
if(iterator.hasNext()) {
object = iterator.next();
return object;
}
else
return null;
- gegangen durch diesen Link aber es schafft eine neue Implementierung selbst, während ich will nur die angegebene Vorlage verwenden:
Can we write our own iterator in Java?
einer for-Schleife und einige ((i & 1) == 1) sollte es tun, tun Sie wirklich brauche ich einen Iterator? –
können Sie einige bedingte Verzweigung innerhalb der Schleife setzen – kpie
Ich stimme nicht nahe, um die Frage nicht zu schließen, aber es gibt http://stackoverflow.com/questions/16033711/java-iterating-over-every-two-elements- in-a-list –