logo

Când să utilizați ArrayList și LinkedList în Java

ArrayList oferă timp constant pentru operația de căutare, deci este mai bine să utilizați ArrayList dacă căutarea este o operație mai frecventă decât operația de adăugare și eliminare. LinkedList oferă timp constant pentru operațiuni de adăugare și eliminare. Deci, este mai bine să utilizați LinkedList pentru manipulare.

ArrayList are complexitate de timp O(1) pentru a accesa elemente prin metodele get și set.

LinkedList are O (n/2) complexitate de timp pentru a accesa elementele.

Clasa LinkedLinked implementează, de asemenea, interfața Deque, astfel încât să puteți obține funcționalitatea cozii duble în LinkedList. Clasa ArrayList nu implementează interfața Deque.

În felul acesta, ArrayList este mai bine pentru a accesa date, în timp ce LinkedList este mai bine pentru a manipula datele. Ambele clase implementează interfața Listă.

Exemplu 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); } } } 

Ieșire:

 Traversing ArrayList... ankit peter mayank 

Exemplu 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); } } 

Ieșire:

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