import java.util.Iterator; import java.util.NoSuchElementException; /** MonBrinIterator gère la navigation dans un Brin d'ADN */ /* public class MonBrinIterator implements Iterator { public MonBrinIterator(MonMaillon m){ throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); } /** Pour naviguer? On implémente l'interface iterable de java.util ici L'avantage c'est que c'est standard et tout le monde comprendra sans trop de mal comment la navogation fonctionne. **//* @Override public boolean hasNext(){ throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); } @Override public Base next() { throw new UnsupportedOperationException("cette méthode n'est pas implémentée"); } } */ import java.util.Iterator; import java.util.NoSuchElementException; public class MonBrinIterator implements Iterator { private MonMaillon courant; // Initialise l'itérateur avec le premier maillon du brin public MonBrinIterator(MonMaillon m) { this.courant = m; } // Vérifie s'il y a un élément suivant dans le brin @Override public boolean hasNext() { return courant != null; } // Retourne la base actuelle et passe au maillon suivant @Override public Base next() { if (!hasNext()) throw new NoSuchElementException("No more elements in the iterator."); Base baseActuelle = courant.getBase(); courant = courant.getSuiteMaillon(); // Passe au maillon suivant return baseActuelle; } }