Middle
Aprakstiet kolekciju hierarhiju Java.
sobes.tech AI
Atbilde no AI
Java kolekciju hierarhija balstās uz saskarnēm, kas nodrošina standarta veidus objektu grupu attēlošanai.
Galvenās saskarnes:
Collection: hierarhijas saknes saskarne. Definē pamatoperācijas, kas piemērojamas visām kolekcijām: pievienošanu, dzēšanu, elementu klātbūtnes pārbaudi, izmēra noteikšanu.Set: kolekcija, kas nesatur dublikātus un nav noteikts elementu kārtības.List: sakārtota kolekcija ar iespēju piekļūt elementiem pēc indeksa. Var saturēt dublikātus.Queue: kolekcija, paredzēta elementu glabāšanai pirms apstrādes. Parasti ievēro FIFO (pirmo ienākošo, pirmo iznākšo) noteikumu, bet ir arī citas realizācijas.Deque: divvirzienu rinda. Atbalsta elementu pievienošanu un dzēšanu abos galos.Map: kolekcija, kas glabā pārus "atslēga-vērtība". Atslēgas jābūt unikālām. NepaplašinaCollectionsaskarni.
Galvenās realizācijas klases (piemēri):
| Saskarne | Realizācijas klases (piemēri) | Apraksts |
|---|---|---|
Set |
HashSet, LinkedHashSet, TreeSet |
Bez dublikātiem. HashSet - bez kārtības, LinkedHashSet - saglabā pievienošanas kārtību, TreeSet - sakārtots. |
List |
ArrayList, LinkedList, Vector |
Sakārtots. ArrayList - balstīts uz masīvu, LinkedList - balstīts uz saistītu sarakstu, Vector - sinhronizēts (novecojis). |
Queue |
LinkedList, PriorityQueue |
Apstrādei. LinkedList - FIFO, PriorityQueue - pēc prioritātēm. |
Deque |
ArrayDeque, LinkedList |
Divvirzienu rinda. ArrayDeque - balstīts uz masīvu, LinkedList - balstīts uz saistītu sarakstu. |
Map |
HashMap, LinkedHashMap, TreeMap, Hashtable |
Atslēga-vērtība. HashMap - bez garantētas kārtības, LinkedHashMap - saglabā pievienošanas/piekļuves kārtību, TreeMap - sakārtots pēc atslēgām, Hashtable - sinhronizēts (novecojis). |
Piemērs ArrayList izmantošanai:
// Izveidot `ArrayList` no virkņu
List<String> fruits = new ArrayList<>();
// Pievienot elementus
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// Pieejas pēc indeksa
String firstFruit = fruits.get(0); // Apple
// Kolekcijas lielums
int size = fruits.size(); // 3
Piemērs HashSet izmantošanai:
// Izveidot `HashSet` no veselu skaitļu
Set<Integer> numbers = new HashSet<>();
// Pievienot elementus (dublikāti tiek ignorēti)
numbers.add(1);
numbers.add(2);
numbers.add(2); // Ignorēts
// Kolekcijas lielums
int size = numbers.size(); // 2
Piemērs HashMap izmantošanai:
// Izveidot `HashMap`: atslēga - String, vērtība - Integer
Map<String, Integer> ages = new HashMap<>();
// Pievienot pārus
ages.put("Alice", 30);
ages.put("Bob", 25);
// Iegūt vērtību pēc atslēgas
int aliceAge = ages.get("Alice"); // 30
// Pārbaudīt, vai ir atslēga
boolean hasBob = ages.containsKey("Bob"); // patiesi