Junior
Papaskokite apie kolekcijų hierarchiją Java.
sobes.tech AI
Atsakymas iš AI
Java kolekcijų hierarchija sukurta aplink du pagrindinius sąsajos: Collection ir Map. Ji apibrėžta java.util pakete.
Collection<E>: Pagrindinė sąsaja daugumai kolekcijų. Reprezentuoja elementų grupę. Nenurodo tvarkos ar unikalumo garantijos:List<E>: Tvarkoma kolekcija (eilė). Elementai turi tam tikrą indeksą. Gali būti pasikartojimų:ArrayList<E>: Įgyvendinimas remiantis masyvu. Greitas atsitiktinis prieigos, lėtas įterpimas/šalinimas viduryje:LinkedList<E>: Įgyvendinimas remiantis susietu sąrašu. Lėtas atsitiktinis prieigos, greitas įterpimas/šalinimas pradžioje ar pabaigoje:Vector<E>: Pasenusi sinchronizuota klasė. Panaši įArrayList, bet saugesnė kelių gijų aplinkoje (ir mažiau efektyvi):Stack<E>: Pasenusi klasė, išplečiantiVectorir įgyvendinanti stako elgseną (LIFO):
Set<E>: Kolekcija, turinti unikalius elementus:HashSet<E>: Įgyvendinimas remiantis maišos lentele. Nesortuotas. Greitos operacijosadd,remove,contains:LinkedHashSet<E>: Išlaiko įterpimo tvarką:SortedSet<E>: Rūšiuotas rinkinys didėjimo tvarka:TreeSet<E>: Įgyvendinimas remiantis raudonai-juoda medžiu. Garantuoja rūšiuotą tvarką:
Queue<E>: Kolekcija, skirta elementų saugojimui prieš apdorojimą, dažnai FIFO tvarka:PriorityQueue<E>: Prioritetų eilė. Elementai išgaunami pagal jų prioritetą:Deque<E>: (Dviguba eilė) Dviejų galų eilė. Palaiko įterpimo ir išėmimo operacijas iš abiejų pusių:ArrayDeque<E>: Dinaminė masyvo pagrindu įgyvendinimas. Greitesnė neiLinkedListnaudojant kaip staką ar eilę:
Map<K, V>: Objektas, kuris žemėlapiuoja raktus į reikšmes. Raktai unikalūs, reikšmės gali kartotis:HashMap<K, V>: Įgyvendinimas remiantis maišos lentele. Nesortuotas. Greitos operacijosput,get,remove:LinkedHashMap<K, V>: Išlaiko įterpimo arba prieigos tvarką:SortedMap<K, V>: Rūšiuota pagal raktus:TreeMap<K, V>: Įgyvendinimas remiantis raudonai-juoda medžiu. Garantuoja rūšiuotą tvarką pagal raktus:
Hashtable<K, V>: Pasenusi sinchronizuota klasė. Panaši įHashMap, bet saugesnė kelių gijų aplinkoje:
Pagrindinės sąsajos:
| Sąsaja | Aprašymas | Tvarka | Unikalumas | Dublikatai |
|---|---|---|---|---|
Collection |
Elementų grupė | +/- | +/- | Taip |
List |
Tvarkoma kolekcija | Taip | Ne | Taip |
Set |
Unikalių elementų kolekcija | +/- | Taip | Ne |
Queue |
Kolekcija apdorojimui (FIFO) | Taip | Ne | Taip |
Deque |
Dviejų galų eilė | Taip | Ne | Taip |
Map |
Raktas-reikšmė | +/- | Pagal raktą | Taip |
SortedSet |
Rūšiuotas rinkinys | Taip | Taip | Ne |
SortedMap |
Rūšiuota pagal raktus kortelė | Taip | Pagal raktą | Taip |
Pavyzdys naudojimo:
// ArrayList naudojimo pavyzdys
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// HashSet naudojimo pavyzdys
Set<Integer> uniqueNumbers = new HashSet<>();
uniqueNumbers.add(1);
uniqueNumbers.add(2);
uniqueNumbers.add(1); // Dublikatas ignoruojamas
System.out.println(uniqueNumbers.size()); // 2
// HashMap naudojimo pavyzdys
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30