logo

Quando usar ArrayList e LinkedList em Java

ArrayList fornece tempo constante para operação de pesquisa, portanto, é melhor usar ArrayList se a pesquisa for uma operação mais frequente do que a operação de adição e remoção. O LinkedList fornece tempo constante para operações de adição e remoção. Portanto, é melhor usar o LinkedList para manipulação.

ArrayList tem complexidade de tempo O(1) para acessar elementos por meio dos métodos get e set.

LinkedList tem complexidade de tempo O(n/2) para acessar os elementos.

A classe LinkedLinked também implementa a interface Deque, para que você possa obter a funcionalidade de fila dupla no LinkedList. A classe ArrayList não implementa a interface Deque.

Na classificação, ArrayList é melhor para acessar dados, enquanto LinkedList é melhor para manipular dados. Ambas as classes implementam a interface List.

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

Saída:

 Traversing ArrayList... ankit peter mayank 

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

Saída:

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