Junior
Kokios kolekcijos egzistuoja Java?
sobes.tech AI
Atsakymas iš AI
Java yra šie pagrindiniai kolekcijų interfeisai, įtraukti į Java Collections Framework:
-
Collection: pagrindinis interfeisas, apibrėžiantis bendras operacijas objektų grupėms. Iš jo paveldi šie sub-interfeisai:List: Tvarkinga kolekcija (sekos). Elementai gali kartotis. Palaiko prieigą pagal indeksą.ArrayList: Dinaminis masyvas. Gerai greitam prieigai pagal indeksą ir pridėjimui pabaigoje. Lėtas įterpimas/šalinimas viduryje.LinkedList: Dviejų krypčių susietas sąrašas. Gerai įterpimui/šalinimui pradžioje ar pabaigoje. Lėtas prieigai pagal indeksą.Vector: SinchronizuotaArrayListversija. Laikoma pasenusia.Stack: Paveldi išVector, įgyvendina stack elgesį (LIFO).
Set: Kolekcija, turinti tik unikalius elementus. Nėra garantuojamas tvarkos:HashSet: Įgyvendinta naudojant maišos lentelę. Labiausiai tinka greitam pridėjimui, šalinimui ir tikrinimui. Nėra garantuojama tvarka.LinkedHashSet: Įgyvendinta kaip maišos lentelė + susietas sąrašas. Garantuoja įterpimo tvarką.TreeSet: Įgyvendinta naudojant raudonąjį-juodąjį medį. Laiko elementus surūšiuotame tvarkoje. Lėtesnė neiHashSet, bet greitesnė užLinkedHashSetdiapazonų paieškai.
Queue: Kolekcija, skirta elementų saugojimui prieš apdorojimą (FIFO - pirmas įeina, pirmas išeina).PriorityQueue: Elementai saugomi pagal jų natūralų tvarką arba palygintoją. Išrenkamas aukščiausio prioriteto elementas.Deque: (Dviguba eilė) Palaiko įterpimą ir šalinimą abiejose pusėse.ArrayDeque: Realizacija pagal masyvą. Efektyvesnė neiLinkedListkaip eilė/stack.
-
Map: Kolekcija, sauganti raktas-reikšmės poras. Raktai yra unikalūs.HashMap: Įgyvendinta naudojant maišos lentelę. Greičiausia pridėjimui, šalinimui ir tikrinimui. Nėra garantuojama tvarka.LinkedHashMap: Įgyvendinta kaip maišos lentelė + susietas sąrašas. Garantuoja įterpimo arba prieigos tvarką.TreeMap: Įgyvendinta naudojant raudonąjį-juodąjį medį. Laiko raktų poras surūšiuotoje tvarkoje pagal raktus. Lėtesnė neiHashMap.HashTable: SinchronizuotaHashMapversija. Laikoma pasenusia.
Taip pat yra pasenusių klasių, kurios nėra JCF dalis, bet kartais naudojamos:
VectorStackHashtableEnumeration(interfeisas)