Middle
164
Ispričaj mi o strukturi Collection okvira u Javi.
Одговор од АИ
sobes.tech АИ
Java Collections framework pruža ujedinjenu arhitekturu za predstavljanje i manipulaciju kolekcijama objekata. Njegove glavne komponente:
-
Interfejsi: Definišu apstraktne tipove kolekcija.
Collection: korenski interfejs koji predstavlja grupu objekata.List: poređana kolekcija koja omogućava duplikate.Set: kolekcija bez duplikata.SortedSet:Setčiji su elementi sortirani.NavigableSet:SortedSetkoji pruža metode za navigaciju kroz sortirani skup.Queue: kolekcija čiji se elementi obrađuju u određenom redosledu (obično FIFO ili LIFO).Deque: dvostruka red.Map: kolekcija parova ključ-vrednost. Ne nasleđujeCollection.SortedMap:Mapčiji su ključevi sortirani.NavigableMap:SortedMapkoji pruža metode za navigaciju kroz sortiranu mapu.Iterator: omogućava iteraciju kroz elemente kolekcije.ListIterator: proširujeIteratorza navigaciju kroz listu u oba smera i modifikaciju liste.
-
Implementacije: Konkretne realizacije interfejsa.
- Za
List:ArrayList,LinkedList,Vector(Legacy). - Za
Set:HashSet,LinkedHashSet,TreeSet. - Za
Queue:LinkedList,PriorityQueue. - Za
Deque:ArrayDeque,LinkedList. - Za
Map:HashMap,LinkedHashMap,TreeMap,Hashtable(Legacy).
- Za
-
Algoritmi: Statičke metode u klasi
Collectionsza izvođenje opštih operacija nad kolekcijama, kao što su sortiranje, pretraživanje, mešanje i druge. -
Utilitarni (Utilities): Klasa
Arraysza rad sa nizovima, klasaObjectsza opšte operacije sa objektima.
Primer upotrebe:
// Kreiranje liste ArrayList
List<String> imena = new ArrayList<>();
imena.add("Alice");
imena.add("Bob");
imena.add("Charlie");
// Iteracija kroz listu
for (String ime : imena) {
System.out.println(ime);
}
// Sortiranje liste
Collections.sort(imena);
System.out.println("Sortirana imena: " + imena);
// Kreiranje skupa HashSet
Set<Integer> brojevi = new HashSet<>();
brojevi.add(1);
brojevi.add(2);
brojevi.add(1); // Duplikat se ignoriše
System.out.println("Skup brojeva: " + brojevi);
// Kreiranje mape HashMap
Map<String, Integer> godine = new HashMap<>();
godine.put("Alice", 30);
godine.put("Bob", 25);
System.out.println("Godine: " + godine);
Glavni odnosi između interfejsa:
Collection <--- List, Set, Queue, Deque
List <--- ArrayList, LinkedList, Vector
Set <--- HashSet, LinkedHashSet, TreeSet
SortedSet <--- TreeSet
NavigableSet <--- TreeSet
Queue <--- LinkedList, PriorityQueue
Deque <--- ArrayDeque, LinkedList
Map <--- HashMap, LinkedHashMap, TreeMap, Hashtable
SortedMap <--- TreeMap
NavigableMap <--- TreeMap
Ova struktura pruža fleksibilnost i mogućnost izbora najpogodnije implementacije za konkretan zadatak.