logo

Rozdiel medzi ArrayList a LinkedList

ArrayList a LinkedList implementujú rozhranie List a udržiavajú poradie vkladania. Obe sú nesynchronizované triedy.

r v jazyku c

Existuje však veľa rozdielov medzi triedami ArrayList a LinkedList, ktoré sú uvedené nižšie.

ArrayListLinkedList
1) ArrayList interne používa a dynamické pole na uloženie prvkov.LinkedList interne používa a dvojito prepojený zoznam na uloženie prvkov.
2) Manipulácia s ArrayList je pomaly pretože interne používa pole. Ak sa z poľa odstráni akýkoľvek prvok, všetky ostatné prvky sa v pamäti posunú.Manipulácia s LinkedList je rýchlejšie než ArrayList, pretože používa dvojito prepojený zoznam, takže v pamäti nie je potrebný žiadny bitový posun.
3) Trieda ArrayList môže pôsobiť ako zoznam len preto, že implementuje iba zoznam.Trieda LinkedList môže fungovať ako zoznam a rad pretože implementuje rozhrania List a Deque.
4) ArrayList je lepšie na ukladanie a prístup údajov.LinkedList je lepšie na manipuláciu údajov.
5) Pamäťové miesto pre prvky ArrayList je súvislé.Umiestnenie prvkov prepojeného zoznamu nie je nákazlivé.
6) Vo všeobecnosti, keď je ArrayList inicializovaný, predvolená kapacita 10 je priradená ArrayList.V LinkedList nie je žiadny prípad predvolenej kapacity. V LinkedList sa pri inicializácii LinkedList vytvorí prázdny zoznam.
7) Aby som bol presný, ArrayList je pole s meniteľnou veľkosťou.LinkedList implementuje dvojito prepojený zoznam rozhrania zoznamu.

Príklad ArrayList a LinkedList v jazyku Java

Pozrime sa na jednoduchý príklad, kde používame ArrayList aj LinkedList.

Názov súboru: 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); } } 
Vyskúšajte to

Výkon:

arraylist: [Ravi,Vijay,Ravi,Ajay] linkedlist: [James,Serena,Swati,Junaid] 

Body na zapamätanie

Nasleduje niekoľko dôležitých bodov, ktoré si treba zapamätať v súvislosti so zoznamom ArrayList a LinkedList.

  • Keď je miera pridávania alebo odstraňovania vyššia ako čítané scenáre, prejdite na LinkedList. Na druhej strane, keď je frekvencia čítaných scenárov vyššia ako rýchlosť pridávania alebo odstraňovania, potom má ArrayList prednosť pred LinkedList.
  • Pretože prvky ArrayList sú uložené kompaktnejšie v porovnaní s LinkedList; preto je ArrayList v porovnaní s LinkedListom priateľskejší k vyrovnávacej pamäti. Šanca na vynechanie vyrovnávacej pamäte je teda menšia v ArrayList v porovnaní s LinkedList. Vo všeobecnosti sa má za to, že LinkedList má nízku úroveň vyrovnávacej pamäte.
  • Pamäťová réžia v LinkedList je väčšia v porovnaní s ArrayList. Je to preto, že v LinkedList máme dva ďalšie odkazy (nasledujúci a predchádzajúci), pretože je potrebné uložiť adresu predchádzajúceho a nasledujúceho uzla a tieto prepojenia zaberajú miesto navyše. Takéto odkazy nie sú prítomné v ArrayList.