En Java, y a-t-il une différence entre Iterator et Iterable?


Réponse 1:

Les noms des interfaces sont parfaitement adaptés, ils devraient vous donner un indice, sinon la réponse directe déjà. Une classe qui implémente l'interface Iterable est - ITERABLE.

Il peut donc être itéré sur cette classe.

Ceci est par exemple utilisé par le pour chaque boucle:

pour (Item item: items) {System.out.println (item); }

Ce code fonctionnera UNIQUEMENT à la condition que «items» soit une classe qui implémente l'interface Iterable.

L'interface Iterable n'a qu'une seule méthode:

Itérateur itérateur ();

Il renverra un itérateur, et l'itérateur sera utilisé en interne par la JVM pour itérer sur votre objet.

Un itérateur est un objet utilisé pour itérer sur un autre objet. Comme un objet pointeur intelligent, qui stocke l'état (actuel, dernier, suivant, hasNext…).

Vous pourriez donc dire - Iterable est un arbre de poires. Iterator est une poire. Un arbre de poires «renvoie des poires». Un arbre de poires n'est pas une poire.

(pas une illustration parfaite je dois l'admettre, mais bon, j'espère que vous avez l'idée ;-)

Code source itérable en ligne (OpenJdk):

Iterable - java.lang.Iterable (.java) - Source d'interface GrepCode

Code source de l'itérateur en ligne (OpenJdk):

Iterator - java.util.Iterator (.java) - Source d'interface GrepCode


Réponse 2:

Merci pour l'A2A

Si quelque chose implémente «Iterable», vous pouvez appeler la méthode .iterator () dessus et avoir fourni un objet Iterator. Cela se produit «sous les couvertures» dans une boucle for.

Un itérateur est une instance d'objet qui se souvient où il en est dans une collection de choses. Chaque fois que vous le demandez, il vous donnera la prochaine chose en séquence. Il vous indiquera également quand il n'y aura plus de choses.

J'espère qu'un objet itérable vous rendra à chaque fois un nouvel itérateur. Ensuite, vous pouvez avoir plusieurs morceaux de code client qui parcourent tous à leur propre vitesse.


Réponse 3:

Un itérateur est un moyen simple de permettre à certains de parcourir une collection de données sans privilèges d'affectation (mais avec la possibilité de les supprimer). Il garde la trace de l'élément actuel et aussi où il ira ensuite.

Un Iterable est une simple représentation d'une série d'éléments qui peuvent être itérés. Cela nous donne juste une idée qu'une collection particulière peut être itérée, par exemple, nous pouvons commencer à partir du premier élément et obtenir l'élément suivant, puis le suivant et ainsi de suite.


Réponse 4:

Un itérateur est un moyen simple de permettre à certains de parcourir une collection de données sans privilèges d'affectation (mais avec la possibilité de les supprimer). Il garde la trace de l'élément actuel et aussi où il ira ensuite.

Un Iterable est une simple représentation d'une série d'éléments qui peuvent être itérés. Cela nous donne juste une idée qu'une collection particulière peut être itérée, par exemple, nous pouvons commencer à partir du premier élément et obtenir l'élément suivant, puis le suivant et ainsi de suite.