Sobes.tech
Junior

Kādas kolekcijas pastāv Java?

sobes.tech AI

Atbilde no AI

Java ietver šādus galvenos kolekciju interfeisus, kas ir irietilpst Java Collections Framework:

  • Collection: pamata interfeiss, kas definē kopējo operāciju kopām objektiem. No tā manto zeminterfeisi:

    • List: Sakārtota kolekcija (sekvence). Elementi var atkārtoties. Atbalsta piekļuvi pēc indeksa.
      • ArrayList: Dinamisks masīvs. Labs ātrai piekļuvei pēc indeksa un pievienošanai beigās. Lēns ieliekšana/izņemšana vidū.
      • LinkedList: Divvirzienu saistīts saraksts. Labs ieliekšanai/izņemšanai sākumā vai beigās. Lēns piekļuve pēc indeksa.
      • Vector: Sinhronizēta ArrayList versija. Uzskatāma par novecojušu.
      • Stack: Manto no Vector, īsteno steka (LIFO) uzvedību.
    • Set: Kolekcija, kas satur tikai unikālus elementus. Nav garantēta kārtība:
      • HashSet: Īstenots ar haštabulu. Ātrākais pievienošanai, dzēšanai un pārbaudei. Nav garantēta kārtība.
      • LinkedHashSet: Īstenots kā haštabula + saistīts saraksts. Garantē pievienošanas kārtību.
      • TreeSet: Īstenots ar sarkanu-melnu koku. Glabā elementus sakārtotā kārtībā. Lēnāks nekā HashSet, bet ātrāks diapazona meklēšanai.
    • Queue: Kolekcija, paredzēta elementu glabāšanai pirms apstrādes (FIFO - pirmais ienāca, pirmais iznāca).
      • PriorityQueue: Elementi tiek glabāti pēc to dabiskās kārtības vai salīdzinātāja. Izvelk elementu ar augstāko prioritāti.
      • Deque: (Divvirzienu rinda) Atbalsta pievienošanu un dzēšanu abās pusēs.
        • ArrayDeque: Realizēts pēc masīva principa. Efektīvāks nekā LinkedList kā rinda/steiks.
  • Map: Kolekcija, kas glabā atslēgas-vērtības pārus. Atslēgas ir unikālas.

    • HashMap: Īstenots ar haštabulu. Ātrākais pievienošanai, dzēšanai un pārbaudei. Nav garantēta kārtība.
    • LinkedHashMap: Īstenots kā haštabula + saistīts saraksts. Garantē pievienošanas vai piekļuves kārtību.
    • TreeMap: Īstenots ar sarkanu-melnu koku. Glabā pārus sakārtotā kārtībā pēc atslēgām. Lēnāks nekā HashMap.
    • HashTable: Sinhronizēta HashMap versija. Uzskatāma par novecojušu.

Ir arī novecojušas klases, kas nav daļa no JCF, bet dažreiz tiek izmantotas:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (interfeiss)