Clasa Collections

Așa cum clasa java.util.Arrays conține metode statice pentru operații cu tablouri, clasa java.util.Collections conține metode statice pentru operații cu colecții și cu mapări, deci cu orice instanțe ale unor clase care implementează una din interfețele java.util.Collection, java.util.Map sau interfețe derivate din acestea.

În clasa Collections, există metode pentru determinarea elementului minim sau maxim al unei colecții și metode de prelucrare a listelor (sortare, căutare binară in lista sortată, inversarea ordinii sau peramutarea aleatoare a elementelor dintr-o listă). Există, de asemenea,  metode de obținere a unor vederi nemodificabile asupra colecțiilor (care nu permit adăugarea sau eliminarea de elemente).

Având în vedere că majoritatea claselor de colecții și de mapări din pachetul java.util au metodele nesincronizate, în clasa Collections există și metode prin care se pot obține instanțe sincronizate ale acestora.
 
Prezentăm aici principalele metode ale clasei Collections.

a. Metode pentru determinarea elementului minim sau maxim dintr-o colecție în care elementele sunt mutual comparabile sau pentru care se folosește un comparator
  public static Object min(Collection coll)
  public static Object max(Collection coll)
  public static Object min(Collection coll, Comparator comp)
  public static Object max(Collection coll, Comparator comp)

b. Metode de prelucrare a listelor
  public static void sort(List list) - sortarea listei în ordinea naturală a elementelor;
  public static void sort(List list, Comparator c)- sortarea listei folosind un comparator;
  public static Comparator reverseOrder() - întoarce un comparator care inversează ordinea naturală a elementelor unei liste sau unui tablou (ordinea "naturală" este cea dată de metoda int compareTo(Object obj) a obiectului respectiv);
  public static int binarySearch(List list, Object key)- căutare binară într-o listă sortată în ordinea naturală a elementelor;
  public static int binarySearch(List list, Object key, Comparator c) - căutare binară într-o listă care a fost sortată în ordinea impusă de comparatorul c;
  public static void reverse(List l) - inversarea ordinii elementelor dintr-o listă;
  public static void shuffle(List list) - permutarea aleatoare a elementelor dintr-o listă;
  public static void fill(List list, Object o)- înlocuirea tuturor elementelor dintr-o listă prin obiectul o;
  public static void copy(List dest, List src)- înlocuiește elementele din lista destinație dest prin elementele cu același indice din lista sursă src. Restul elementelor din dest ramân neafectate. Se consideră că lungimea listei dest este cel puțin aceeași cu a listei src;

c. Metode de obținere a unor vederi nemodificabile asupra colecțiilor sau mapărilor
  public static Collection unmodifiableCollection(Collection c)
  public static Set unmodifiableSet(Set s)
  public static SortedSet unmodifiableSortedSet(SortedSet s)
  public static List unmodifiableList(List list)
  public static Map unmodifiableMap(Map m)
  public static SortedMap unmodifiableSortedMap(SortedMap m)

d. Metode prin care se obțin colecții sau mapări sincronizate
  public static Collection synchronizedCollection(Collection c)
  public static Set synchronizedSet(Set s)
  public static SortedSet synchronizedSortedSet(SortedSet s)
  public static List synchronizedList(List list)
  public static Map synchronizedMap(Map m)
  public static SortedMap synchronizedSortedMap(SortedMap m)

Exemplu
In fișierul TestCollections.java se da un exemplu de aplicație care testează diferite metode ale clasei Collections. Pentru testare se folosește lista argumentelor date în linia de comandă la punerea în execuție a aplicației. Această listă se obține prin metoda asList din clasa Arrays, care convertește un tablou în listă.



© Copyright 2001 - Severin BUMBARU, Universitatea "Dunarea de Jos" din Galati