A Java hi ha alguna diferència entre Iterator i Iterable?


Resposta 1:

Els noms de les interfícies són perfectes i haurien de donar-vos un suggeriment, si no és la resposta directa. Una classe que implementa la interfície Iterable és - ITERABLE.

De manera que es pot iterar en aquesta classe.

Això, per exemple, el fa servir per a cada bucle:

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

Aquest codi funcionarà NOMÉS amb la condició que “articles” sigui una classe que implementi la interfície d'Iterable.

La interfície d'Iterable té només un mètode:

Iterador iterador ();

Retornarà un iterador i el JVM l'utilitzarà internament per iterar sobre l'objecte.

Un Iterator és un objecte que s'utilitza per a iterar sobre un altre objecte. Com un objecte intel·ligent intel·ligent, emmagatzema l'estat (actual, últim, següent, següent) ...

Així que podríeu dir: Iterable és un arbre de peres. Iterator és una pera. Un arbre de peres “retorna peres”. Un arbre de peres no és una pera.

(no és una il·lustració perfecta que he de reconèixer, però bé, espero que us facin la idea ;-)

Codi font Iterable en línia (OpenJdk):

Iterable - java.lang.Iterable (.java) - Font de la interfície de GrepCode

Codi font Iterator en línia (OpenJdk):

Iterator - java.util.Iterator (.java) - Font de la interfície de GrepCode


Resposta 2:

Gràcies per l'A2A

Si alguna cosa implementa “Iterable”, podeu trucar al mètode .iterator () i heu subministrat un objecte Iterator. Això passa "sota les cobertes" en un bucle for.

Un Iterator és una instància d'objecte que recorda on es troba en una col·lecció de coses. Cada vegada que ho pregunteu, us donarà el següent en ordre. També us dirà quan s'ha quedat sense coses.

Tant de bo que un objecte Iterable us torni un iterador nou cada vegada. A continuació, podeu tenir diversos fragments de codi de client que es repeteixen a les seves velocitats.


Resposta 3:

Un iterador és una manera senzilla de permetre que alguns es buclein a través d’una col·lecció de dades sense privilegis d’assignació (encara que amb capacitat de supressió). Fa un seguiment de l’element actual i també d’on anirà a continuació.

Un Iterable és una representació simple d’una sèrie d’elements que es poden iterar. Només ens dóna la idea que es pot repetir una col·lecció en concret, per exemple, podem començar des del primer element i obtenir l’element següent, després pel següent i així successivament.


Resposta 4:

Un iterador és una manera senzilla de permetre que alguns es buclein a través d’una col·lecció de dades sense privilegis d’assignació (encara que amb capacitat de supressió). Fa un seguiment de l’element actual i també d’on anirà a continuació.

Un Iterable és una representació simple d’una sèrie d’elements que es poden iterar. Només ens dóna la idea que es pot repetir una col·lecció en concret, per exemple, podem començar des del primer element i obtenir l’element següent, després pel següent i així successivament.