ArrayListi ja LinkedListi erinevus

Sisukord:

ArrayListi ja LinkedListi erinevus
ArrayListi ja LinkedListi erinevus

Video: ArrayListi ja LinkedListi erinevus

Video: ArrayListi ja LinkedListi erinevus
Video: Java SE. Урок 34. Коллекции ArrayList & LinkedList 2024, November
Anonim

Võtmete erinevus – ArrayList vs LinkedList

Kogud on kasulikud andmete salvestamiseks. Tavalises massiivis on massiivi suurus fikseeritud. Mõnikord on vaja luua massiive, mis võivad vastav alt vajadusele kasvada. Programmeerimiskeeltel, nagu Java, on kogud. See on klasside ja liidestega raamistik. See toimib elementide rühma konteinerina. Kogud võimaldavad salvestada, värskendada ja hankida elementide komplekti. See aitab töötada andmestruktuuridega, nagu loendid, komplektid, puud ja kaardid. Loend on kogumisraamistiku liides. ArrayList ja LinkedList on kogude raamistikus kaks klassi. Nad rakendavad koguliidest ja loendi liidest. Selles artiklis käsitletakse erinevust ArrayListi ja LinkedListi vahel. ArrayList on klass, mis laiendab AbstractListi ja rakendab Listi liidest, mis kasutab andmeelementide salvestamiseks sisemiselt dünaamilist massiivi. LinkedList on klass, mis laiendab AbstractSequentialList ja rakendab List, Deque ja Queue liideseid, mis sisemiselt kasutavad andmeelementide salvestamiseks topeltlingitud loendit. See on peamine erinevus ArrayListi ja LinkedListi vahel.

Mis on ArrayList?

Dünaamiliste massiivide loomiseks kasutatakse klassi ArrayList. Erinev alt tavalisest massiivist ei ole dünaamilise massiivi suurus fikseeritud. ArrayList klassi abil loodud objektil on lubatud loendisse salvestada elementide komplekt. Võimsus suureneb automaatselt, nii et programmeerija saab loendisse elemente lisada. ArrayList klass laiendab AbstractList klassi, mis rakendab Listi liidest. Seetõttu saab ArrayList kasutada Listi liidese meetodeid. Elementidele juurdepääsuks kasutatakse meetodit get(). Elementide loendisse lisamiseks saab kasutada meetodit add(). Elemendi eemaldamiseks loendist kasutatakse meetodit remove(). Vaadake allolevat programmi.

Erinevus ArrayListi ja LinkedListi vahel
Erinevus ArrayListi ja LinkedListi vahel
Erinevus ArrayListi ja LinkedListi vahel
Erinevus ArrayListi ja LinkedListi vahel

Joonis 01: ArrayList näide

Vastav alt ül altoodud programmile luuakse ArrayListi objekt. Lisamismeetodi abil saab elemente dünaamiliselt lisada. Elemendid “A”, “B”, “C”, “D” ja “E” lisatakse lisamismeetodil. Elemendi eemaldamiseks loendist kasutatakse eemaldamismeetodit. Kui edastate 4 eemaldamismeetodile, eemaldatakse loendist 4. indeksi täht, mis on "E". Loendis kordustsükli abil läbimisel prinditakse tähed A, B, C ja D.

Mis on LinkedList?

Sarnaselt ArrayListiga kasutatakse LinkedListi andmeelementide dünaamiliseks salvestamiseks. LinkedList klassi abil loodud objektil on lubatud loendisse salvestada elementide komplekt. Võimsus suureneb automaatselt, nii et programmeerija saab loendisse elemente lisada. See kasutab andmete salvestamiseks sisemiselt topeltlingitud loendit. Topeltlingitud loendis salvestatakse andmed sõlmedena. Iga sõlm sisaldab kahte linki. Esimene link osutab eelmisele sõlmele. Järgmine link osutab jada järgmisele sõlmele.

Klass LinkedList laiendab klassi AbstractSequentialList ja rakendab loendi liidest. Seetõttu saab LinkedList kasutada Listi liidese meetodeid. Get() meetodit saab kasutada loendi elementidele juurdepääsuks. Elementide loendisse lisamiseks saab kasutada meetodit add(). Elemendi eemaldamiseks loendist kasutatakse meetodit remove(). Vaadake allolevat programmi.

Peamised erinevused ArrayListi ja LinkedListi vahel
Peamised erinevused ArrayListi ja LinkedListi vahel
Peamised erinevused ArrayListi ja LinkedListi vahel
Peamised erinevused ArrayListi ja LinkedListi vahel

Joonis 02: näide LinkedList'iga

Vastav alt ül altoodud programmile luuakse LinkedListi objekt. Lisamismeetodi abil saab elemente dünaamiliselt lisada. Elemendid “A”, “B”, “C”, “D” ja “E” lisatakse lisamismeetodil. Elemendi eemaldamiseks loendist kasutatakse eemaldamismeetodit. Kui edastate 4 eemaldamismeetodile, eemaldatakse loendist 4. indeksi täht, mis on "E". For-tsükliga itereerimisel prinditakse tähed A, B, C ja D.

Millised on ArrayListi ja LinkedListi sarnasused?

  • Nii ArrayList kui ka LinkedList rakendavad loendi liidest.
  • Nii ArrayList kui ka LinkedList võivad sisaldada dubleerivaid elemente.
  • Nii ArrayList kui ka LinkedList säilitavad sisestusjärjestuse.

Mis vahe on ArrayListil ja LinkedListil?

ArrayList vs LinkedList

ArrayList on klass, mis laiendab AbstractListi ja rakendab Listi liidest, mis kasutab andmeelementide salvestamiseks sisemiselt dünaamilist massiivi. LinkedList on klass, mis laiendab AbstractSequentialList ja rakendab List, Deque ja Queue liideseid, mis kasutab sisemiselt topeltlingitud loendit andmeelementide salvestamiseks.
Juurdepääs elementidele
Juurdepääs ArrayListi elementidele on kiirem kui LinkedListi puhul. Juurdepääs LinkedListi elementidele on aeglasem kui ArrayListile.
Elementidega manipuleerimine
ArrayListi elementidega manipuleerimine on aeglasem kui LinkedListi puhul. LinkedListi elementidega manipuleerimine on kiirem kui ArrayListi puhul.
Käitumine
ArrayList toimib loendina. LinkedList toimib loendina ja järjekorrana.

Kokkuvõte – ArrayList vs LinkedList

Kogumisraamistik võimaldab töötada andmestruktuuridega, nagu loendid, puud, kaardid ja komplektid. Loend on kogumisraamistiku liides. Selles artiklis käsitleti erinevust ArrayListi ja LinkedListi vahel. ArrayList on klass, mis laiendab AbstractListi ja rakendab Listi liidest, mis kasutab andmeelementide salvestamiseks sisemiselt dünaamilist massiivi. LinkedList on klass, mis laiendab AbstractSequentialList ja rakendab List, Deque, Queue liideseid, mis sisemiselt kasutab andmeelementide salvestamiseks topeltlingitud loendit. See on erinevus ArrayListi ja LinkedListi vahel.

Soovitan: