Peamine erinevus - ArrayList vs LinkedList
Kogud on kasulikud andmete salvestamiseks. Tavalises massiivis on massiivi suurus fikseeritud. Mõnikord on vaja luua massiive, mis võivad vastavalt vajadusele kasvada. Programmeerimiskeeltel nagu Java on kollektsioone. See on klasside ja liideste komplektiga raamistik. See toimib elementide rühma mahutina. Kogud võimaldavad elementide komplekti salvestada, värskendada ja hankida. See aitab töötada selliste andmestruktuuridega nagu loendid, komplektid, puud ja kaardid. Nimekiri on kollektsiooni raamistiku liides. ArrayList ja LinkedList on kollektsioonide raamistikus kaks klassi. Nad rakendavad kogumisliidest ja loendiliidest. Selles artiklis käsitletakse ArrayListi ja LinkedListi erinevust. ArrayList on klass, mis laiendab AbstractList ja rakendab liidest List, mis kasutab sisemiselt dünaamilist massiivi andmete elementide salvestamiseks. LinkedList on klass, mis laiendab AbstractSequentialList ja rakendab liideseid List, Deque ja Queue, mis kasutavad sisemiselt topeltlingitud loendit andmete elementide salvestamiseks. See on peamine erinevus ArrayListi ja LinkedListi vahel.
SISU
1. Ülevaade ja võtme erinevus
2. Mis on ArrayList
3. Mis on LinkedList
4. ArrayListi ja LinkedListi sarnasused
5. Kõrvuti võrdlus - ArrayList vs LinkedList tabelina
6. Kokkuvõte
Mis on ArrayList?
ArrayList klassi kasutatakse dünaamiliste massiivide loomiseks. Erinevalt tavalisest massiivist pole dünaamilise massiivi suurus fikseeritud. ArrayList klassi abil loodud objektil on lubatud loendis elementide kogumit salvestada. Mahutavus suureneb automaatselt, nii et programmeerija saab loendisse elemente lisada. ArrayList klass laiendab nimekirja liidest rakendavat klassi AbstractList. Seetõttu saab ArrayList kasutada liidese List meetodeid. Elementidele juurde pääsemiseks kasutatakse meetodit get (). Meetodit add () saab kasutada loendisse elementide lisamiseks. Elementi loendist eemaldamiseks kasutatakse meetodit Remove (). Vaadake allolevat programmi.
Joonis 01: Näide ArrayListist
Vastavalt ülaltoodud programmile luuakse ArrayListi objekt. Lisamismeetodi abil saab elemente dünaamiliselt lisada. Elemendid "A", "B", "C", "D" ja "E" lisatakse lisamismeetodi abil. Eemaldamismeetodit kasutatakse elemendi loendist eemaldamiseks. Kui edastate eemaldamismeetodile 4, eemaldatakse loendist neljanda registri täht „E”. Loendis läbi tsükli iteratsiooni trükitakse tähed A, B, C ja D.
Mis on LinkedList?
Sarnaselt ArrayListiga kasutatakse ka LinkedListi andmeelementide dünaamiliseks salvestamiseks. LinkedList-klassi abil loodud objektil on lubatud loendis elementide kogumit salvestada. Mahutavus suureneb automaatselt, nii et programmeerija saab loendisse elemente lisada. Andmete salvestamiseks kasutab 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 järjestuse järgmisele sõlmele.
LinkedList klass laiendab klassi AbstractSequentialList ja rakendab liidest List. Seetõttu saab LinkedList kasutada liidese List meetodeid. Meetodit get () saab kasutada loendi elementidele juurdepääsemiseks. Meetodit add () saab kasutada loendisse elementide lisamiseks. Elementi loendist eemaldamiseks kasutatakse meetodit Remove (). Vaadake allolevat programmi.
Joonis 02: näide LinkedListiga
Vastavalt ülaltoodud programmile luuakse LinkedListi objekt. Lisamismeetodi abil saab elemente dünaamiliselt lisada. Elemendid "A", "B", "C", "D" ja "E" lisatakse lisamismeetodi abil. Eemaldamismeetodit kasutatakse elemendi loendist eemaldamiseks. Kui edastate eemaldamismeetodile 4, eemaldatakse loendist neljas indeksis olev täht, mis on E. For loopi abil kordamisel trükitakse 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 duplikaatelemente.
- Nii ArrayList kui ka LinkedList säilitavad sisestamise järjekorra.
Mis vahe on ArrayListi ja LinkedListi vahel?
Erinev artikkel keskel enne tabelit
ArrayList vs LinkedList |
|
ArrayList on klass, mis laiendab AbstractList ja rakendab liidest List, mis kasutab sisemiselt dünaamilist massiivi andmete elementide salvestamiseks. | LinkedList on klass, mis laiendab AbstractSequentialList ja rakendab liideseid List, Deque, Queue, mis sisemiselt kasutab topelt lingitud loendit andmete elementide salvestamiseks. |
Elementidele juurdepääsemine | |
ArrayListi elementidele juurdepääs on kiirem kui LinkedListi elementidel. | LinkedListi elementidele juurdepääs on aeglasem kui ArrayListi elementidel. |
Elementidega manipuleerimine | |
ArrayListi elementidega manipuleerimine on aeglasem kui LinkedListi elementidega. | LinkedListi elementidega manipuleerimine on kiirem kui ArrayListi elementidega. |
Käitumine | |
ArrayList toimib loendina. | LinkedList toimib loendi ja järjekorrana. |
Kokkuvõte - ArrayList vs LinkedList
Kogumisraamistik võimaldab töötada selliste andmestruktuuridega nagu loendid, puud, kaardid ja komplektid. Nimekiri on kollektsiooni raamistiku liides. Selles artiklis arutati ArrayListi ja LinkedListi erinevust. ArrayList on klass, mis laiendab AbstractList ja rakendab liidese List, mis kasutab sisemiselt dünaamilist massiivi andmete elementide salvestamiseks. LinkedList on klass, mis laiendab AbstractSequentialList ja rakendab liideseid List, Deque, Queue, mis sisemiselt kasutab topelt lingitud loendit andmete elementide salvestamiseks. See on erinevus ArrayListi ja LinkedListi vahel.