Sobes.tech
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"); // тачно