7.2. Colecții, liste, iteratorii
În Java a câștigat utilizarea pe scară largă colecții (Colecții) - matrice „inteligente“ cu lungime variabilă în mod dinamic, sprijinind o serie de operațiuni suplimentare importante în comparație cu matrice. Ierarhia de bază a colecțiilor este clasa java.util.AbstractCollection. (În general, clasa de colectare nu trebuie să fie un descendent al lui AbstractCollection - poate fi orice clasă care implementează interfața de colectare). clase și interfețe ale colecțiilor cheie:
- Set, interfață SortedSet; clase HashSet, TreeSet, EnumSet, LinkedHashSet - set (aleatoare sau seturi ordonate într-un fel elemente non-recurente);
- interfață java.util.List; clase Java. AWT .List, ArrayList. LinkedList, Vector - liste (seturi ordonate de elemente, elementele pot fi repetate în diferite locații ale listei);
- interfețe Harta, SortedMap; clasa HashMap, Hashtable. ConcurrentHashMap, TreeMap, EnumMap, Properties - tabele (liste de perechi "nume-valoare").
Accesul la elementele de colectare, în general, nu se poate face pe index, deoarece nu toate colecțiile elementele de susținere de indexare. Această funcție este realizată de un obiect special - iterator (iterator). Fiecare colecție are propria iterator colecție care știe cum să lucreze cu ea, așa că este introdus un iterator după cum urmează:
În iteratori sunt următoarele trei metode:
transformare EXEMPLU matrice la ciclul de colectare și accesul la elementele acestei colecții se realizează folosind un iterator:
add boolean (obj Object)
Pentru a adăuga un obiect la colectarea (în partea de jos a listei). Returnează true dacă adăugări de succes - schimbări în colecție. Colectia nu poate permite adăugarea unui tip sau elemente care nu se potrivesc alte motive incompatibile.
boolean addAll (Collection c)
Adăugarea la colectarea de obiecte din alte colecții. Returnează true dacă adăugați de succes, care este, în cazul în care ați adăugat cel puțin un element.
Curățarea de colectare - eliminarea de la ea de link-uri la toate obiectele incluse în colecție. În acest caz, obiectele care se face referire în alte elemente ale programului nu sunt eliminate din memorie.
boolean conține (Object obj)
Returnează true dacă colecția include obj. Testarea este realizată folosind alternativ obj.equals apel (e) o metodă pentru elementele e. incluse în colecție.
boolean containsAll (Collection c)
Returnează true dacă colecția conține toate elementele de colectare c.
Returnează true dacă colecția este goală, adică nu conțin niciun element.
Returnează o referință la iteratorului - obiectul, permițându-vă pentru a obține acces alternativ la o colecție. Pentru o singură colecție li se permite să aibă un număr arbitrar de obiecte iterator, inclusiv - diferite tipuri. În acest proces, ele se pot referi la diferite elemente ale colecției. După crearea unui iterator întotdeauna puncte la începutul colecției - pentru a apela următoarea metodă () furnizează un link către elementul inițial al colecției.
elimina boolean (obj Object)
Se elimină din colecția de primul pentru a satisface apariția obj. Găsirea și eliminarea este realizată folosind un iterator. Returnează true dacă ștergerea a reușit, care este, în cazul în care colecția sa schimbat.
boolean removeAll (Collection c)
Se elimină din colectarea tuturor elementelor de colectare c. Returnează true dacă ștergerea a reușit, care este, în cazul în care colecția sa schimbat.
boolean retainAll (Collection c)
Frunze de colectare numai cele ale elementelor sale constitutive, care fac parte dintr-o colecție de c.