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]