Je li u Javi razlika između Iteratora i Iterablea?


Odgovor 1:

Imena sučelja savršeno se uklapaju u njih, trebali bi vam dati nagovještaj, ako već ne i izravan odgovor. Klasa koja implementira Iterable sučelje je - ITERABLE.

Tako da se može ponoviti na ovoj klasi.

Na primjer, koristi se za svaku petlju:

za (stavka predmeta: predmeti) {System.out.println (stavka); }

Ovaj će kôd SAMO raditi pod uvjetom da su „items” klasa koja implementira Iterable sučelje.

Iterable sučelje ima samo jednu metodu:

iterator iterator ();

Vratit će iterator, a iterator će JVM interno koristiti iterator za ponavljanje vašeg objekta.

Iterator je objekt koji se koristi za ponavljanje nad drugim objektom. Poput objekta pametnog pokazivača, koji pohranjuje stanje (trenutno, posljednje, sljedeće, hasNext…).

Pa bi mogli reći - Iterable je stablo krušaka. Iterator je kruška. Stablo krušaka „vraća kruške“. Stablo kruške nije kruška.

(nije savršena ilustracija, moram priznati, ali dobro, nadam se da ste shvatili ideju ;-)

Online kôd koji se može koristiti (OpenJdk):

Iterable - java.lang.Iterable (.java) - Izvor sučelja GrepCode

Izvorni kôd internetskog iteratora (OpenJdk):

Iterator - java.util.Iterator (.java) - Izvor sučelja GrepCode


Odgovor 2:

Hvala za A2A

Ako nešto implementira "Iterable", možete nazvati metodu .iterator () na njemu i dostaviti objekt Iterator. To se događa „ispod pokrivača“ u petlji.

Iterator je objektni predmet koji pamti gdje se nalazi u zbirci stvari. Svaki put kada ga budete pitali, dat će vam sljedeću stvar u nizu. Također će vam reći kada je ponestalo stvari.

Nadam se da vam se Iterable objekt svaki put vraća novi, svježi iterator. Tada možete imati nekoliko komada klijentskog koda koje sve ponavljaju vlastitom brzinom.


Odgovor 3:

Iterator je jednostavan način na koji se omogućuje da se petljaju kroz kolekciju podataka bez privilegija dodjele (iako s mogućnošću uklanjanja). Prati trenutni element i također kuda će krenuti sljedeći.

Iterable je jednostavan prikaz niza elemenata koji se mogu ponoviti. Samo nam daje ideju da se određena zbirka može ponoviti, na primjer, možemo početi od prvog elementa i dobiti sljedeći element, zatim sljedeći i tako dalje.


Odgovor 4:

Iterator je jednostavan način na koji se omogućuje da se petljaju kroz kolekciju podataka bez privilegija dodjele (iako s mogućnošću uklanjanja). Prati trenutni element i također kuda će krenuti sljedeći.

Iterable je jednostavan prikaz niza elemenata koji se mogu ponoviti. Samo nam daje ideju da se određena zbirka može ponoviti, na primjer, možemo početi od prvog elementa i dobiti sljedeći element, zatim sljedeći i tako dalje.