logo

Kdy použít ArrayList a LinkedList v Javě

ArrayList poskytuje konstantní čas pro operaci vyhledávání, takže je lepší použít ArrayList, pokud je vyhledávání častější operací než operace přidání a odebrání. LinkedList poskytuje konstantní čas pro operace přidávání a odebírání. Pro manipulaci je tedy lepší použít LinkedList.

ArrayList má časovou složitost O(1) pro přístup k prvkům pomocí metod get a set.

LinkedList má O(n/2) časovou složitost pro přístup k prvkům.

Třída LinkedLinked také implementuje rozhraní Deque, takže můžete získat funkčnost dvojité fronty v LinkedList. Třída ArrayList neimplementuje rozhraní Deque.

Pokud jde o řazení, ArrayList je lepší pro přístup k datům, zatímco LinkedList je lepší pro manipulaci s daty. Obě třídy implementují rozhraní List.

Pří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ýstup:

 Traversing ArrayList... ankit peter mayank 

Pří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ýstup:

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