Pagrindinis skirtumas – ArrayList vs LinkedList
Kolekcijos yra naudingos duomenims saugoti. Įprastame masyve masyvo dydis yra fiksuotas. Kartais reikia sukurti masyvus, kurie gali augti pagal poreikį. Programavimo kalbos, tokios kaip „Java“, turi rinkinius. Tai sistema su klasių ir sąsajų rinkiniu. Jis tarnauja kaip elementų grupės talpykla. Kolekcijos leidžia saugoti, atnaujinti, gauti elementų rinkinį. Tai padeda dirbti su duomenų struktūromis, tokiomis kaip sąrašai, rinkiniai, medžiai ir žemėlapiai. Sąrašas yra kolekcijos sistemos sąsaja. ArrayList ir LinkedList yra dvi kolekcijų sistemos klasės. Jie įgyvendina surinkimo sąsają ir sąrašo sąsają. Šiame straipsnyje aptariamas skirtumas tarp ArrayList ir LinkedList. ArrayList yra klasė, kuri išplečia AbstractList ir įgyvendina List sąsają, kuri viduje naudoja dinaminį masyvą duomenų elementams saugoti. LinkedList yra klasė, kuri išplečia AbstractSequentialList ir įgyvendina List, Deque ir Queue sąsajas, kurios viduje naudoja dvigubai susietą sąrašą duomenų elementams saugoti. Tai yra pagrindinis skirtumas tarp ArrayList ir LinkedList.
Kas yra ArrayList?
Klasė ArrayList naudojama dinaminiams masyvams kurti. Skirtingai nuo įprasto masyvo, dinaminio masyvo dydis nėra fiksuotas. Objektui, sukurtam naudojant ArrayList klasę, sąraše leidžiama saugoti elementų rinkinį. Talpa didėja automatiškai, todėl programuotojas gali įtraukti elementus į sąrašą. „ArrayList“klasė išplečia „AbstractList“klasę, kuri įgyvendina sąrašo sąsają. Todėl ArrayList gali naudoti List sąsajos metodus. Norint pasiekti elementus, naudojamas get() metodas. Metodas add() gali būti naudojamas elementams įtraukti į sąrašą. Pašalinti () metodas naudojamas elementui pašalinti iš sąrašo. Žiūrėkite toliau pateiktą programą.
01 pav.: ArrayList pavyzdys
Pagal aukščiau pateiktą programą sukuriamas ArrayList objektas. Naudojant pridėjimo metodą, elementus galima pridėti dinamiškai. Elementai „A“, „B“, „C“, „D“ir „E“pridedami naudojant pridėjimo metodą. Pašalinimo metodas naudojamas elementui pašalinti iš sąrašo. Perduodant 4 pašalinimo metodui, 4-osios rodyklės raidė, kuri yra „E“, pašalinama iš sąrašo. Iteruojant sąrašą naudojant for kilpą, bus spausdinamos raidės A, B, C ir D.
Kas yra LinkedList?
Panašiai kaip ArrayList, LinkedList naudojamas duomenų elementams dinamiškai saugoti. Objektui, sukurtam naudojant LinkedList klasę, sąraše leidžiama saugoti elementų rinkinį. Talpa didėja automatiškai, todėl programuotojas gali įtraukti elementus į sąrašą. Duomenims saugoti viduje naudojamas dvigubai susietas sąrašas. Dvigubai susietame sąraše duomenys saugomi kaip mazgai. Kiekviename mazge yra dvi nuorodos. Pirmoji nuoroda nukreipia į ankstesnį mazgą. Kita nuoroda nukreipia į kitą sekos mazgą.
LinkedList klasė išplečia AbstractSequentialList klasę ir įgyvendina List sąsają. Todėl „LinkedList“gali naudoti sąrašo sąsajos metodus. Get() metodas gali būti naudojamas norint pasiekti sąrašo elementus. Metodas add() gali būti naudojamas elementams įtraukti į sąrašą. Pašalinti () metodas naudojamas elementui pašalinti iš sąrašo. Žiūrėkite toliau pateiktą programą.
02 pav. Pavyzdys su LinkedList
Pagal aukščiau pateiktą programą sukuriamas LinkedList objektas. Naudojant pridėjimo metodą, elementus galima pridėti dinamiškai. Elementai „A“, „B“, „C“, „D“ir „E“pridedami naudojant pridėjimo metodą. Pašalinimo metodas naudojamas elementui pašalinti iš sąrašo. Perduodant 4 pašalinimo metodui, raidė 4 rodyklėje, kuri yra „E“, pašalinama iš sąrašo. Kai kartojama naudojant for kilpą, bus spausdinamos raidės A, B, C ir D.
Kokie yra ArrayList ir LinkedList panašumai?
- Tiek ArrayList, tiek LinkedList įgyvendina sąrašo sąsają.
- Tiek ArrayList, tiek LinkedList gali turėti pasikartojančių elementų.
- Tiek ArrayList, tiek LinkedList palaiko įterpimo tvarką.
Kuo skiriasi „ArrayList“ir „LinkedList“?
ArrayList vs LinkedList |
|
ArrayList yra klasė, kuri išplečia AbstractList ir įgyvendina List sąsają, kuri viduje naudoja dinaminį masyvą duomenų elementams saugoti. | LinkedList yra klasė, kuri išplečia AbstractSequentialList ir įgyvendina List, Deque, Queue sąsajas, kurios viduje naudoja dvigubai susietą sąrašą duomenų elementams saugoti. |
Prieiga prie elementų | |
ArrayList elementus galima pasiekti greičiau nei LinkedList. | LinkedList elementai pasiekiami lėčiau nei ArrayList. |
Manipuliavimas elementais | |
Manipuliuoti „ArrayList“elementais vyksta lėčiau nei „LinkedList“. | Manipuliuoti LinkedList elementais yra greičiau nei ArrayList. |
Elgesys | |
ArrayList veikia kaip sąrašas. | LinkedList veikia kaip sąrašas ir eilė. |
Santrauka – ArrayList vs LinkedList
Kolekcijos sistema leidžia dirbti su duomenų struktūromis, tokiomis kaip sąrašai, medžiai, žemėlapiai ir rinkiniai. Sąrašas yra surinkimo sistemos sąsaja. Šiame straipsnyje aptariamas skirtumas tarp ArrayList ir LinkedList. ArrayList yra klasė, kuri išplečia AbstractList ir įgyvendina List sąsają, kuri viduje naudoja dinaminį masyvą duomenų elementams saugoti. LinkedList yra klasė, kuri išplečia AbstractSequentialList ir įgyvendina List, Deque, Queue sąsajas, kurios viduje naudoja dvigubai susietą sąrašą duomenų elementams saugoti. Tai yra skirtumas tarp ArrayList ir LinkedList.