ArrayList giver konstant tid til søgeoperation, så det er bedre at bruge ArrayList, hvis søgning er hyppigere operation end tilføjelse og fjernelse. LinkedList giver konstant tid til tilføjelse og fjernelse. Så det er bedre at bruge LinkedList til manipulation.
ArrayList har O(1) tidskompleksitet for at få adgang til elementer via get og set metoderne.
LinkedList har O(n/2) tidskompleksitet for at få adgang til elementerne.
LinkedLinked-klassen implementerer også Deque-grænsefladen, så du kan få funktionaliteten af dobbeltkø i LinkedList. ArrayList-klassen implementerer ikke Deque-grænsefladen.
På en måde er ArrayList bedre til at få adgang til data, mens LinkedList er bedre til at manipulere data. Begge klasser implementerer List interface.
Eksempel 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
Eksempel på linket liste
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]