60 lines
1.6 KiB
Java
60 lines
1.6 KiB
Java
|
|
import java.util.Iterator;
|
||
|
|
import java.util.NoSuchElementException;
|
||
|
|
|
||
|
|
/**
|
||
|
|
MonBrinIterator
|
||
|
|
|
||
|
|
gère la navigation dans un Brin d'ADN
|
||
|
|
|
||
|
|
*/
|
||
|
|
/*
|
||
|
|
public class MonBrinIterator implements Iterator<Base> {
|
||
|
|
|
||
|
|
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<Base> {
|
||
|
|
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;
|
||
|
|
}
|
||
|
|
}
|