Clasa Collections

Asa cum clasa java.util.Arrays contine metode statice pentru operatii cu tablouri, clasa java.util.Collections contine metode statice pentru operatii cu colectii si cu mapari, deci cu orice instante ale unor clase care implementeaza una din interfetele java.util.Collection, java.util.Map sau interfete derivate din acestea.

Exista metode pentru determinarea elementului minim sau maxim al unei colectii si metode de prelucrare a listelor (sortare, cautare binara in lista sortata, inversarea ordinii sau peramutarea aleatorie a elementelor dintr-o lista). Exista, de asemenea,  metode de obtinere a unor vederi nemodificabile asupra colectiilor (care nu permit adaugarea sau eliminarea de elemente).

Avand in vedere ca majoritatea claselor de colectii si de mapari din pachetul java.util au metodele nesincronizate, in clasa Collections exista si metode prin care se pot obtine instante sincronizate ale acestora.
 
Prezentam aici principalele metode ale clasei Collections.

a. Metode pentru determinarea elementului minim sau maxim dintr-o colectie in care elementele sunt mutual comparabile sau pentru care se foloseste 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 in ordinea naturala a elementelor;
  public static void sort(List list, Comparator c)- sortarea listei folosind un comparator;
  public static Comparator reverseOrder() - intoarce un comparator care inverseaza ordinea naturala a elementelor unei liste sau unui tablou (ordinea "naturala" este cea data de metoda int compareTo(Object obj) a obiectului respectiv);
  public static int binarySearch(List list, Object key)- cautare binara intr-o lista sortata in ordinea naturala a elementelor;
  public static int binarySearch(List list, Object key, Comparator c) - cautare binara intr-o lista care a fost sortata in ordinea impusa de comparatorul c;
  public static void reverse(List l) - inversarea ordinii elementelor dintr-o lista;
  public static void shuffle(List list) - permutarea aleatorie a elementelor dintr-o lista;
  public static void fill(List list, Object o)- inlocuirea tuturor elementelor dintr-o lista prin obiectul o;
  public static void copy(List dest, List src)- inlocuieste elementele din lista destinatie dest prin elementele cu acelasi indice din lista sursa src. Restul elementelor din dest raman neafectate. Se considera ca lungimea listei dest este cel putin aceeasi cu a listei src;

c. Metode de obtinere a unor vederi nemodificabile asupra colectiilor sau maparilor
  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 obtin colectii sau mapari 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 fisierul TestCollections.java se da un exemplu de aplicatie testeaza diferite metode ale clasei Collections. Pentru testare se foloseste lista argumentelor date in linia de comanda la punerea in executie a aplicatiei. Aceasta lista se obtine prin metoda asList din clasa Arrays, care converteste un tablou in lista.



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