Sobes.tech
Junior

Millised kogumikud on Java-s olemas?

sobes.tech AI

Vastus AI-lt

Java sisaldab järgmisi peamisi kogude liideseid, mis kuuluvad Java Collections Framework'i:

  • Collection: Põhiline liides, mis määratleb üldised toimingud objektide gruppidele. Sellelt pärivad alamliidesed:

    • List: Korraldatud kogum (järjend). Elemente võib korrata. Toetab juurdepääsu indeksi järgi.
      • ArrayList: Dynaamiline massiiv. Hea kiireks juurdepääsuks indeksi järgi ja lõppu lisamiseks. Aeglasem keskpaigas lisamine/kustutamine.
      • LinkedList: Kahe suunaga seotud nimekiri. Hea algusest või lõpust lisamiseks/kustutamiseks. Aeglasem indeksi järgi juurdepääs.
      • Vector: Sünkroniseeritud ArrayList versioon. Peetakse vananenuks.
      • Stack: Pärib Vector-ilt, teostab virna (LIFO) käitumist.
    • Set: Kogum, mis sisaldab ainult unikaalseid elemente. Ei garanteeri järjekorda:
      • HashSet: Teostatakse hash-tabeli abil. Kõige kiirem lisamiseks, eemaldamiseks ja olemasolu kontrollimiseks. Ei garanteeri järjekorda.
      • LinkedHashSet: Teostatakse kui hash-tabel + seotud nimekiri. Garanteerib lisamise järjekorra.
      • TreeSet: Teostatakse punane-must puu abil. Hoidab elemente sorteeritud järjekorras. Aeglasem kui HashSet, kuid kiirem vahemikuotsingutel.
    • Queue: Kogum, mis on mõeldud elementide hoidmiseks enne töötlemist (FIFO - esimene sisestatud, esimene väljastatud).
      • PriorityQueue: Elemente hoitakse nende loomuliku järjekorra või võrdleja järgi. Tõstab välja kõrgeima prioriteediga elemendi.
      • Deque: (Kahe otsaga jada) Toetab sisestamist ja eemaldamist mõlemast otsast.
        • ArrayDeque: Massiivi põhine teostus. Tõhusam kui LinkedList järjekorras/virnas.
  • Map: Kogum, mis hoiab paare võtme-väärtus. Võtmed on unikaalsed.

    • HashMap: Teostatakse hash-tabeli abil. Kõige kiirem lisamiseks, eemaldamiseks ja olemasolu kontrollimiseks. Ei garanteeri järjekorda.
    • LinkedHashMap: Teostatakse kui hash-tabel + seotud nimekiri. Garanteerib lisamise või juurdepääsu järjekorra.
    • TreeMap: Teostatakse punane-must puu abil. Hoidab paare sorteeritud järjekorras võtmete järgi. Aeglasem kui HashMap.
    • HashTable: Sünkroniseeritud HashMap versioon. Peetakse vananenuks.

Samuti on olemas vananenud klassid, mis ei kuulu JCF-i, kuid mõnikord kasutatakse:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (liides)