Last active
April 28, 2025 19:56
-
-
Save thinkphp/cd7f4825ac0feb30ec82c2595a83ca34 to your computer and use it in GitHub Desktop.
Diferenta intre Iterable si Iterator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Cele două interfețe au roluri complementare dar distincte în Java: | |
Interfața Iterable | |
------------------- | |
- Este definită în pachetul java.lang | |
- O clasă care implementează Iterable poate fi folosită direct în bucla for-each (enhanced for loop) | |
- Are o singură metodă obligatorie: Iterator<T> iterator() care returnează un obiect Iterator | |
- Este implementată de colecțiile standard din Java (ArrayList, HashSet, etc.) | |
- Reprezintă o colecție care poate fi parcursă | |
Interfața Iterator | |
------------------ | |
Este definită în pachetul java.util | |
Oferă mecanismul propriu-zis de parcurgere secvențială a elementelor | |
Are trei metode principale: | |
boolean hasNext() - verifică dacă mai există elemente de parcurs | |
T next() - returnează următorul element și avansează cursorul | |
void remove() - elimină ultimul element returnat (opțional) | |
Este folosită pentru a controla parcurgerea elementelor dintr-o colecție | |
Pe scurt: | |
- Iterable definește că ceva poate fi parcurs și este necesar pentru a folosi bucla for-each | |
- Iterator definește cum anume se face parcurgerea elementelor |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment