Je suis nouveau en Java et je suis vraiment confus avec iterator et iterable. Quelqu'un peut-il m'expliquer et me donner des exemples?
Réponses
Trop de publicités?Un Iterable
est une représentation simple d'une série d'éléments que l'on peut parcourir. Il n'a pas d'itération de l'état comme un "élément courant". Au lieu de cela, il a une méthode qui produit un Iterator
.
Un Iterator
est l'objet à l'itération de l'état. Il vous permet de vérifier si il a plus d'éléments à l'aide de hasNext()
et passer à l'élément suivant (le cas échéant) à l'aide d' next()
.
En règle générale, un Iterable
devrait être en mesure de produire un nombre de validité Iterator
s.
Une implémentation de Iterable
est une implémentation qui fournit un Iterator
:
public interface Iterable<T>
{
Iterator<T> iterator();
}
Un itérateur est un moyen simple d’autoriser certaines personnes à parcourir une collection de données sans privilèges d’attribution (bien qu’il soit possible de les supprimer).
public interface Iterator<E>
{
boolean hasNext();
E next();
void remove();
}
Voir Javadoc.
L'implémentation de l'interface Iterable permet à un objet d'être la cible de l'instruction "foreach".
class SomeClass implements Iterable<String> {}
class Main
{
public void method()
{
SomeClass someClass = new SomeClass();
.....
for(String s : someClass) {
//do something
}
}
}
Iterator est une interface qui a une implémentation pour itérer sur des éléments. Iterable est une interface qui fournit Iterator.