Middle
Opisati hijerarhiju kolekcija u Javi.
sobes.tech АИ
Одговор од АИ
Хиерархија колекција у Јави заснована је на скупу интерфејса који пружају стандардни начин представљања група објеката.
Главни интерфејси:
Collection: коренски интерфејс хијерархије. Дефинише основне операције применљиве на све колекције: додавање, брисање, провера присуства елемената, одређивање величине.Set: колекција која не садржи дупликате и нема одређени ред елемената.List: поређана колекција са могућношћу приступа елементима по индексу. Може садржати дупликате.Queue: колекција намењена за чување елемената пре обраде. Обично прати правило FIFO (First-In, First-Out), али постоје и друге реализације.Deque: двосмерна ред. Подржава додавање и уклањање елемената са обе стране.Map: колекција која чува парове "кључ-вредност". Кључеви морају бити јединствени. Не проширује интерфејсCollection.
Главне реализујуће класе (примери):
| Интерфејс | Реализујуће класе (примери) | Опис |
|---|---|---|
Set |
HashSet, LinkedHashSet, TreeSet |
Без дупликата. HashSet - без реда, LinkedHashSet - чува ред додавања, TreeSet - сортиран. |
List |
ArrayList, LinkedList, Vector |
Поређена. ArrayList - на основу масива, LinkedList - на основу повезаног списка, Vector - синхронизована (застарела). |
Queue |
LinkedList, PriorityQueue |
За обраду. LinkedList - FIFO, PriorityQueue - на основу приоритета. |
Deque |
ArrayDeque, LinkedList |
Двосмерна ред. ArrayDeque - на основу масива, LinkedList - на основу повезаног списка. |
Map |
HashMap, LinkedHashMap, TreeMap, Hashtable |
Кључ-вредност. HashMap - без гарантираног реда, LinkedHashMap - чува ред додавања/доступа, TreeMap - сортиран по кључевима, Hashtable - синхронизована (застарела). |
Пример коришћења ArrayList:
// Креирање ArrayList од стрингова
List<String> fruits = new ArrayList<>();
// Додавање елемената
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// Приступ по индексу
String firstFruit = fruits.get(0); // Apple
// Величина колекције
int size = fruits.size(); // 3
Пример коришћења HashSet:
// Креирање HashSet од целих бројева
Set<Integer> numbers = new HashSet<>();
// Додавање елемената (дупликати се игноришу)
numbers.add(1);
numbers.add(2);
numbers.add(2); // Игнорише се
// Величина колекције
int size = numbers.size(); // 2
Пример коришћења HashMap:
// Креирање HashMap: кључ - String, вредност - Integer
Map<String, Integer> ages = new HashMap<>();
// Додавање парова кључ-вредност
ages.put("Alice", 30);
ages.put("Bob", 25);
// Добијање вредности по кључу
int aliceAge = ages.get("Alice"); // 30
// Провера постојања кључа
boolean hasBob = ages.containsKey("Bob"); // тачно