Hallo,
es gibt ein Pair<A,B> und zwei Iteratoren sollen durch A B iterieren.
Das Ergebnis soll sein x1 y1 x2 y2 x3 y3 x4 y4.
An den Signaturen soll nichts verändert werden.
Wie muss
definiert werden, damit das mit der Iteration funktioniert?
Mit it1.next und it2.next ? aber wie gebe ich dies dann in Pair<A,B> zurück?
es gibt ein Pair<A,B> und zwei Iteratoren sollen durch A B iterieren.
Das Ergebnis soll sein x1 y1 x2 y2 x3 y3 x4 y4.
An den Signaturen soll nichts verändert werden.
Wie muss
Code:
public Pair<A, B> next() { }
Mit it1.next und it2.next ? aber wie gebe ich dies dann in Pair<A,B> zurück?
Code:
import java.util.*;
public class PairIterable<A, B> implements Iterable<Pair<A,B>> {
Pair<Iterable<A>, Iterable<B>> pair;
public PairIterable(Iterable<A> it1, Iterable<B> it2){
pair = new Pair<Iterable<A>, Iterable<B>>(it1,it2);
}
public Iterator<Pair<A, B>> iterator() {
return new MyIt();
}
public class MyIt implements Iterator<Pair<A, B>> {
Iterator<A> it1 = pair.getFirst().iterator();
Iterator<B> it2 = pair.getSecond().iterator();
public boolean hasNext() {
return it1.hasNext() || it2.hasNext();
}
public Pair<A, B> next() {
return null;
}
public void remove() {
throw new UnsupportedOperationException();
}
}
public static void main(String[] args) {
List<String> listA = new ArrayList<>();
listA.add("x1");listA.add("x2");listA.add("x3");listA.add("x4");
List<String> listB = new ArrayList<>();
listB.add("y1");listB.add("y2");listB.add("y3");listB.add("y4");
for (Pair<String, String> s:new PairIterable<>(listA,listB)){
System.out.println(s);
}
}
}
Zuletzt bearbeitet: