Skip to content

Instantly share code, notes, and snippets.

@thinkphp
Last active April 28, 2025 19:56
Show Gist options
  • Save thinkphp/cd7f4825ac0feb30ec82c2595a83ca34 to your computer and use it in GitHub Desktop.
Save thinkphp/cd7f4825ac0feb30ec82c2595a83ca34 to your computer and use it in GitHub Desktop.
Diferenta intre Iterable si Iterator
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