Kogud on kasulikud andmete salvestamiseks. Tavalises massiivis on massiivi suurus fikseeritud. Mõnikord nõutakse massiivide loomist, mis võivad vastavalt vajadusele kasvada. Programmeerimiskeeltel, näiteks Java, on kogud. See on klasside ja liideste komplekt. See toimib konteinerina elementide rühmale. Kogud võimaldavad elementide komplekti säilitada, värskendada ja otsida. See aitab töötada selliste andmestruktuuridega nagu nimekirjad, komplektid, puud ja kaardid. Loend on kogumisraamistiku liides. ArrayList ja LinkedList on kollektsioonide raamistikus kaks klassi. Nad rakendavad kogumisliidest ja loendiliidest. Selles artiklis käsitletakse erinevust ArrayListi ja LinkedListi vahel. ArrayList on klass, mis laiendab AbstractList ja rakendab loendi liidest, mis kasutab sisemiselt dünaamilist massiivi andmeelementide salvestamiseks. LinkedList on klass, mis laiendab AbstractSequentialList ja rakendab liideseid List, Deque ja Queue, mis sisemiselt kasutab andmeelementide salvestamiseks kahekordselt lingitud loendit. See on see võtme erinevus ArrayListi ja LinkedListi vahel.
1. Ülevaade ja peamised erinevused
2. Mis on ArrayList?
3. Mis on LinkedList?
4. Sarnasused ArrayListi ja LinkedListi vahel
5. Kõrvuti võrdlus - ArrayList vs LinkedList tabelina
6. Kokkuvõte
ArrayList klassi kasutatakse dünaamiliste massiivide loomiseks. Erinevalt tavalisest massiivist pole dünaamilise massiivi suurus fikseeritud. Klassi ArrayList abil loodud objektil on lubatud salvestada nimekirja elementide komplekt. Maht suureneb automaatselt, nii et programmeerija saab loendisse elemente lisada. ArrayList klass laiendab nimekirja liidese rakendavat AbstractList klassi. Seetõttu saab ArrayList kasutada loendi liidese meetodeid. Elementide juurde pääsemiseks kasutatakse meetodit get (). Elementide lisamiseks loendisse saab kasutada meetodit add (). Elemendi eemaldamiseks loendist kasutatakse meetodit eemalda (). Vaadake allolevat programmi.
Joonis 01: ArrayListi näide
Ülaltoodud programmi kohaselt luuakse ArrayListi objekt. Lisamismeetodi abil saab elemente dünaamiliselt lisada. Elemendid “A”, “B”, “C”, “D” ja “E” lisatakse liitmismeetodi abil. Eemaldamise meetodit kasutatakse elemendi eemaldamiseks loendist. Kui lähete 4-le eemaldamismeetodile, eemaldatakse loendist 4. indeksi täht, mis on „E”. Kui itereerite loendit for-silmuse abil, prinditakse tähed A, B, C ja D.
Sarnaselt ArrayListiga kasutatakse ka LinkedList andmeelementide dünaamiliseks salvestamiseks. Klassi LinkedList abil loodud objektil on lubatud salvestada nimekirja elementide komplekt. Maht suureneb automaatselt, nii et programmeerija saab loendisse elemente lisada. See kasutab andmete salvestamiseks sisemiselt kahekordselt lingitud loendit. Kahekordselt lingitud loendis salvestatakse andmed sõlmedena. Igas sõlmes on kaks linki. Esimene link osutab eelmisele sõlmele. Järgmine link osutab järjestuse järgmisele sõlmele.
Klass LinkedList laiendab klassi AbstractSequentialList ja juurutab loendi liidese. Seetõttu saab LinkedList kasutada loendi liidese meetodeid. Loendi elementide juurde pääsemiseks saab kasutada meetodit get (). Elementide lisamiseks loendisse saab kasutada meetodit add (). Elemendi eemaldamiseks loendist kasutatakse meetodit eemalda (). Vaadake allolevat programmi.
Joonis 02: näide LinkedListiga
Ülaltoodud programmi kohaselt luuakse LinkedListi objekt. Lisamismeetodi abil saab elemente dünaamiliselt lisada. Elemendid “A”, “B”, “C”, “D” ja “E” lisatakse liitmismeetodi abil. Eemaldamise meetodit kasutatakse elemendi eemaldamiseks loendist. Kui lähete 4-le eemaldamismeetodile, eemaldatakse loendist 4. indeksi täht, mis on „E”. Kui iteratsiooni kasutatakse silmuse jaoks, prinditakse tähed A, B, C ja D.
ArrayList vs LinkedList | |
ArrayList on klass, mis laiendab AbstractList ja rakendab loendi liidest, mis kasutab sisemiselt andmete elementide salvestamiseks dünaamilist massiivi. | LinkedList on klass, mis laiendab AbstractSequentialList ja rakendab liideseid List, Deque, Queue, mis kasutab sisemiselt andmeelementide salvestamiseks kahekordselt lingitud loendit. |
Elementidele juurdepääs | |
ArrayListi elementidele pääseb juurde kiiremini kui LinkedListile. | LinkedListi elementidele juurdepääs on aeglasem kui ArrayList. |
Elementide manipuleerimine | |
ArrayListi elementide manipuleerimine on aeglasem kui LinkedList. | LinkedListi elementidega manipuleerimine on kiirem kui ArrayList. |
Käitumine | |
ArrayList esineb nimekirjana. | LinkedList esindab nimekirja ja järjekorda. |
Kogumisraamistik võimaldab töötada selliste andmestruktuuridega nagu nimekirjad, puud, kaardid ja komplektid. Loend on kogumisraamistiku liides. Selles artiklis käsitleti erinevust ArrayListi ja LinkedListi vahel. ArrayList on klass, mis laiendab AbstractList ja rakendab loendi liidest, mis kasutab sisemiselt dünaamilist massiivi andmeelementide salvestamiseks. LinkedList on klass, mis laiendab AbstractSequentialList ja rakendab liideseid List, Deque, Queue, mis kasutab sisemiselt andmeelementide salvestamiseks kahekordselt lingitud loendit. See on erinevus ArrayListi ja LinkedListi vahel.
1.Sissejuhatus seotud loendisse Andmestruktuuri õpetus | Õppeaeg. Saadaval siin
2. “LinkedList Java - javatpoint.”, The Point, saadaval siin
3. “Java ArrayList klass - javatpoint.” The Point, saadaval siit