Итак, я создал класс DiceCollection, который реализует Iterator и его классы. При выполнении модульных тестов мой метод next (), похоже, не увеличивает мой индекс, и я не уверен, в чем причина этого.
public class DiceCollection implements Iterator<De> {
public int position = 0;
public int endPosition = 3;
private De[] diceList;
@Override
public boolean hasNext() {
return position < endPosition;
}
@Override
public De next() {
De de = diceList[position];
position++;
return de;
}
}
Теперь при вызове метода next (), мой индекс позиции остается прежним:
Iterator<De> iter = des.creerIterateur();
System.out.println(iter.hasNext());
System.out.println(des.position + "/" + des.endPosition);
System.out.println(iter.next());
System.out.println(des.position + "/" + des.endPosition);
System.out.println(iter.hasNext());
System.out.println(iter.next());
System.out.println(des.position + "/" + des.endPosition);
System.out.println(iter.hasNext());
System.out.println(iter.next());
System.out.println(iter.hasNext());
System.out.println(iter.next()); //null
Я получаю этот вывод:
true
0/3
De [valeur=0, nbFaces=6]
0/3
true
De [valeur=0, nbFaces=8]
0/3
true
De [valeur=0, nbFaces=10]
true
null