pour créer une classe qui implémente Iterator<Instruction>, il suffit de mettre dans sa entête "implements Iterator<Instruction>" et de coder les trois méthodes qui s'y trouvent . Pour coder les méthodes, a mon a vis, le plus simple est de se baser sur un iterator courant, tu n'aura plus qu'à déléguer les appels qui doivent l'être.
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class MyIterator implements Iterator<Instruction>{
private Iterator<Instruction> baseIterator;
public MyIterator(Iterator<Instruction> baseIterator){
this.baseIterator = baseIterator;
}
public boolean hasNext(){
return baseIterator.hasNext();
}
public Instruction next(){
return baseIterator.next().clone();
}
public void remove() { throw new UnsupportedOperationException("Delete forbidden");}
} |
puis sa création deviens simple comme bonjour.
new MyIterator(listeDinstruction.iterator())
Partager