„ArrayList“ ir „LinkedList“ įgyvendina sąrašo sąsają ir palaiko įterpimo tvarką. Abi klasės yra nesinchronizuotos.
kur yra nešiojamojo kompiuterio klaviatūros įterpimo klavišas
Tačiau yra daug skirtumų tarp toliau pateiktų ArrayList ir LinkedList klasių.
ArrayList | LinkedList |
---|---|
1) ArrayList viduje naudoja a dinaminis masyvas elementams saugoti. | „LinkedList“ viduje naudoja a dvigubai susietas sąrašas elementams saugoti. |
2) Manipuliavimas su ArrayList yra lėtas nes viduje naudojamas masyvas. Jei kuris nors elementas pašalinamas iš masyvo, visi kiti elementai perkeliami atmintyje. | Manipuliavimas su LinkedList yra greičiau nei ArrayList, nes jame naudojamas dvigubai susietas sąrašas, todėl atmintyje nereikia keisti bitų. |
3) ArrayList klasė gali veikia kaip sąrašas tik todėl, kad įgyvendina tik sąrašą. | „LinkedList“ klasė gali veikia kaip sąrašas ir eilė tiek dėl to, kad įgyvendina List ir Deque sąsajas. |
4) ArrayList yra geriau saugoti ir pasiekti duomenis. | LinkedList yra geriau manipuliuoti duomenis. |
5) ArrayList elementų atminties vieta yra gretima. | Susieto sąrašo elementų vieta nėra užkrečiama. |
6) Paprastai, kai inicijuojamas ArrayList, numatytasis ArrayList pajėgumas priskiriamas 10. | „LinkedList“ sąraše nėra numatytosios talpos atvejo. „LinkedList“ inicijuojant „LinkedList“ sukuriamas tuščias sąrašas. |
7) Tiksliau sakant, ArrayList yra keičiamo dydžio masyvas. | LinkedList įgyvendina dvigubai susietą sąrašo sąsajos sąrašą. |
„ArrayList“ ir „LinkedList“ pavyzdys „Java“.
Pažiūrėkime paprastą pavyzdį, kai naudojame „ArrayList“ ir „LinkedList“.
Failo pavadinimas: TestArrayLinked.java
import java.util.*; class TestArrayLinked{ public static void main(String args[]){ List al=new ArrayList();//creating arraylist al.add('Ravi');//adding object in arraylist al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); List al2=new LinkedList();//creating linkedlist al2.add('James');//adding object in linkedlist al2.add('Serena'); al2.add('Swati'); al2.add('Junaid'); System.out.println('arraylist: '+al); System.out.println('linkedlist: '+al2); } }Išbandykite dabar
Išvestis:
arraylist: [Ravi,Vijay,Ravi,Ajay] linkedlist: [James,Serena,Swati,Junaid]
Taškai, kuriuos reikia prisiminti
Toliau pateikiami keli svarbūs dalykai, kuriuos reikia atsiminti dėl „ArrayList“ ir „LinkedList“.
- Kai pridėjimo ar pašalinimo rodiklis yra didesnis nei skaitytų scenarijų, eikite į LinkedList. Kita vertus, kai skaitymo scenarijų dažnis yra didesnis nei pridėjimo ar pašalinimo dažnis, „ArrayList“ turi viršenybę prieš „LinkedList“.
- Kadangi ArrayList elementai yra saugomi kompaktiškiau, palyginti su LinkedList; todėl „ArrayList“ yra patogesnis talpyklai, palyginti su „LinkedList“. Taigi, talpyklos praleidimo tikimybė yra mažesnė „ArrayList“, palyginti su „LinkedList“. Paprastai manoma, kad „LinkedList“ yra prastos talpyklos vietos.
- Atmintis „LinkedList“ yra daugiau nei „ArrayList“. Taip yra todėl, kad LinkedList turime dvi papildomas nuorodas (kitą ir ankstesnę), nes reikia išsaugoti ankstesnio ir kito mazgų adresus, ir šios nuorodos užima papildomos vietos. Tokių nuorodų nėra „ArrayList“.