logo

Kada koristiti ArrayList i LinkedList u Javi

ArrayList osigurava konstantno vrijeme za operaciju pretraživanja, stoga je bolje koristiti ArrayList ako je pretraga češća operacija nego operacija dodavanja i uklanjanja. LinkedList pruža stalno vrijeme za operacije dodavanja i uklanjanja. Stoga je bolje koristiti LinkedList za manipulaciju.

ArrayList ima O(1) vremensku složenost za pristup elementima putem get i set metoda.

LinkedList ima O(n/2) vremensku složenost za pristup elementima.

Klasa LinkedLinked također implementira Deque sučelje, tako da možete dobiti funkciju dvostruko završenog reda u LinkedList-u. Klasa ArrayList ne implementira Deque sučelje.

U stvari, ArrayList je bolji za pristup podacima dok je LinkedList bolji za manipuliranje podacima. Obje klase implementiraju List sučelje.

ArrayList Primjer

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

Izlaz:

 Traversing ArrayList... ankit peter mayank 

Primjer LinkedList-a

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

Izlaz:

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