Kokios yra kolekcijų realizacijos Java programavimo kalboje?
sobes.tech AI
Atsakymas iš AI
-
Sąsajos:
Collection: Pagrindinė sąsaja visoms kolekcijoms.List: Tvarkinga kolekcija (su indeksais).Set: Kolekcija be pasikartojančių elementų.SortedSet: Tvarkinga kolekcija be pasikartojančių elementų, elementai yra surūšiuoti.Map: Asociatyvus masyvas (raktas-reikšmė).SortedMap: Surūšiuotas asociatyvus masyvas pagal raktus.Queue: Kolekcija elementų saugojimui prieš jų apdorojimą.Deque: Abipusė eilė.
-
Klasės (pagrindinės įgyvendinimo formos):
List:ArrayList: Dinaminis masyvas. Greitas prieiga pagal indeksą, lėtos operacijos įterpimo/ištrynimo viduryje.LinkedList: Dviejų nuorodų sąrašas. Lėtas prieiga pagal indeksą, greitos įterpimo/ištrynimo operacijos viduryje.Vector: Pasenęs sinchronizuotasArrayListanalogas.Stack:Vectorpogrupis, įgyvendinantis staką (LIFO).
-
Set: -HashSet: Pagrįstas hash lentelės įgyvendinimu. Neteikia elementų tvarkos. -LinkedHashSet: Pagrįstas hash lentelės ir susietojo sąrašo įgyvendinimu. Išlaiko įterpimo tvarką. -TreeSet: Pagrįstas raudonojo-juodojo medžio įgyvendinimu. Elementai surūšiuoti didėjimo tvarka. -
Map: -HashMap: Pagrįstas hash lentelės įgyvendinimu. Neteikia porų tvarkos. -Hashtable: Pasenęs sinchronizuotasHashMapanalogas. -LinkedHashMap: Pagrįstas hash lentelės ir susietojo sąrašo įgyvendinimu. Išlaiko įterpimo tvarką. -TreeMap: Pagrįstas raudonojo-juodojo medžio įgyvendinimu. Poros raktas-reikšmė surūšiuotos pagal raktus. -
Queue: -PriorityQueue: Prioritetinė eilė. Elementai išrenkami pagal jų natūralų tvarką arba komparatorių. -ArrayDeque: Abipusė eilė, pagrįsta masyvu. -
Naudingi įrankiai: -
Collections: Statiniai metodai darbui su kolekcijomis (rūšiavimas, paieška, sinchronizacija ir kt.).
// Pavyzdys naudojant ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Pavyzdys naudojant HashSet
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Dublikatas nebus pridėtas
System.out.println(numbers.size()); // 2
// Pavyzdys naudojant HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// Pavyzdys naudojant PriorityQueue
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (mažiausias prioritetas)