ArrayList fornisce un tempo costante per l'operazione di ricerca, quindi è meglio utilizzare ArrayList se la ricerca è un'operazione più frequente rispetto all'operazione di aggiunta e rimozione. La LinkedList fornisce tempo costante per le operazioni di aggiunta e rimozione. Quindi è meglio usare LinkedList per la manipolazione.
ArrayList ha una complessità temporale O(1) per accedere agli elementi tramite i metodi get e set.
LinkedList ha una complessità temporale O(n/2) per accedere agli elementi.
La classe LinkedLinked implementa anche l'interfaccia Deque, in modo da poter ottenere la funzionalità della coda a doppia estremità in LinkedList. La classe ArrayList non implementa l'interfaccia Deque.
In una sorta, ArrayList è migliore per accedere ai dati mentre LinkedList è migliore per manipolare i dati. Entrambe le classi implementano l'interfaccia List.
Esempio di elenco di array
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); } } }
Produzione:
Traversing ArrayList... ankit peter mayank
Esempio di lista collegata
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); } }
Produzione:
After adding: [ankit, peter, mayank] After removing: [ankit, mayank] After changing: [ankit, vivek]