Sobes.tech
Junior

Kokios kolekcijos egzistuoja Java?

sobes.tech AI

Atsakymas iš AI

Java Collections Framework siūlo daugybę kolekcijų duomenų saugojimui ir valdymui. Pagrindiniai sąsajos ir jų įgyvendinimai:

  • Collection: pagrindinė sąsaja.
    • List: tvarkinga kolekcija, leidžianti dubliavimą.
      • ArrayList: pagrįsta masyvu, greita prieiga pagal indeksą, lėtas įterpimas/ištrynimas viduryje.
      • LinkedList: pagrįsta dvigubai susietu sąrašu, greitas įterpimas/ištrynimas, lėtas prieiga pagal indeksą.
      • Vector: ArrayList srauto saugi analogija, pasenusi.
      • Stack: pagrįsta Vector, LIFO principas.
    • Set: unikalių elementų kolekcija, be tam tikros tvarkos (išskyrus SortedSet).
      • HashSet: pagrįsta maišos lentelė, greita prieiga ir įterpimas/ištrynimas.
      • LinkedHashSet: išsaugo įterpimo tvarką.
      • TreeSet: saugo elementus surūšiuotoje tvarkoje.
    • Queue: elementų kolekcija, dažnai naudojama elementų saugojimui FIFO tvarka.
      • PriorityQueue: elementai ištraukiami pagal jų prioritetą.
      • ArrayDeque: dvipusis eilė.
    • Deque: dvipusė eilė, galima pridėti ir pašalinti elementus abiejose galose.
  • Map: saugo raktas-reikšmės poras, raktai yra unikalūs.
    • HashMap: pagrįsta maišos lentele, greita prieiga pagal raktą.
    • LinkedHashMap: išsaugo įterpimo arba prieigos tvarką.
    • TreeMap: saugo poras surūšiuotoje tvarkoje pagal raktus.
    • Hashtable: HashMap srauto saugi analogija, pasenusi.

Saugios srauto kolekcijos:

  • Collections.synchronized*: apvyniojimai aplink esamas kolekcijas.
  • Concurrent*: java.util.concurrent paketas, kolekcijos su pagerinta našumu konkurentiniame režime.
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

Kitos mažiau paplitusios kolekcijos.