logo

Quand utiliser ArrayList et LinkedList en Java

ArrayList fournit un temps constant pour l'opération de recherche, il est donc préférable d'utiliser ArrayList si la recherche est une opération plus fréquente que l'opération d'ajout et de suppression. La LinkedList fournit un temps constant pour les opérations d'ajout et de suppression. Il est donc préférable d'utiliser LinkedList pour la manipulation.

ArrayList a une complexité temporelle O(1) pour accéder aux éléments via les méthodes get et set.

LinkedList a une complexité temporelle O(n/2) pour accéder aux éléments.

La classe LinkedLinked implémente également l'interface Deque, vous pouvez donc obtenir la fonctionnalité de file d'attente à double extrémité dans LinkedList. La classe ArrayList n'implémente pas l'interface Deque.

En quelque sorte, ArrayList est préférable pour accéder aux données tandis que LinkedList est préférable pour manipuler les données. Les deux classes implémentent l’interface List.

Exemple de liste de tableaux

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

Sortir:

 Traversing ArrayList... ankit peter mayank 

Exemple de liste liée

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

Sortir:

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