logo

Kedy použiť ArrayList a LinkedList v jazyku Java

ArrayList poskytuje konštantný čas na operáciu vyhľadávania, takže je lepšie použiť ArrayList, ak je vyhľadávanie častejšou operáciou ako operácia pridávania a odstraňovania. LinkedList poskytuje konštantný čas na operácie pridávania a odstraňovania. Na manipuláciu je teda lepšie použiť LinkedList.

ArrayList má časovú zložitosť O(1) na prístup k prvkom prostredníctvom metód get a set.

LinkedList má časovú zložitosť O(n/2) na prístup k prvkom.

Trieda LinkedLinked implementuje aj rozhranie Deque, takže v LinkedList môžete získať funkčnosť dvojitého frontu. Trieda ArrayList neimplementuje rozhranie Deque.

Pokiaľ ide o triedenie, ArrayList je lepší na prístup k údajom, zatiaľ čo LinkedList je lepšie manipulovať s údajmi. Obe triedy implementujú rozhranie List.

Príklad ArrayList

 import java.util.*; public class ListExample { public static void main(String[] args) { //ArrayList is better to store and view data List list=new ArrayList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('Traversing ArrayList...'); for(String s:list){ System.out.println(s); } } } 

Výkon:

 Traversing ArrayList... ankit peter mayank 

Príklad LinkedList

 import java.util.*; public class ListExample2 { public static void main(String[] args) { //LinkedList is better to manipulate data List list=new LinkedList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('After adding: '+list); list.remove('peter'); System.out.println('After removing: '+list); list.set(1,'vivek'); System.out.println('After changing: '+list); } } 

Výkon:

 After adding: [ankit, peter, mayank] After removing: [ankit, mayank] After changing: [ankit, vivek]