logo

När ska man använda ArrayList och LinkedList i Java

ArrayList ger konstant tid för sökoperation, så det är bättre att använda ArrayList om sökning är mer frekvent operation än add och remove operation. LinkedList ger konstant tid för att lägga till och ta bort operationer. Så det är bättre att använda LinkedList för manipulation.

ArrayList har O(1) tidskomplexitet för att komma åt element via get- och set-metoderna.

LinkedList har O(n/2) tidskomplexitet för att komma åt elementen.

LinkedLinked-klassen implementerar också Deque-gränssnittet, så att du kan få funktionaliteten för dubbelkön i LinkedList. Klassen ArrayList implementerar inte Deque-gränssnittet.

Som sagt är ArrayList bättre för att komma åt data medan LinkedList är bättre för att manipulera data. Båda klasserna implementerar List-gränssnittet.

Exempel på 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); } } } 

Produktion:

 Traversing ArrayList... ankit peter mayank 

Exempel på länkad lista

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

Produktion:

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