logo

Når du skal bruke ArrayList og LinkedList i Java

ArrayList gir konstant tid for søkeoperasjon, så det er bedre å bruke ArrayList hvis søk er hyppigere operasjon enn legg til og fjern operasjon. LinkedList gir konstant tid for å legge til og fjerne operasjoner. Så det er bedre å bruke LinkedList for manipulasjon.

ArrayList har O(1) tidskompleksitet for å få tilgang til elementer via get and set-metodene.

LinkedList har O(n/2) tidskompleksitet for å få tilgang til elementene.

LinkedLinked-klassen implementerer også Deque-grensesnittet, slik at du kan få funksjonaliteten til en dobbel kø i LinkedList. ArrayList-klassen implementerer ikke Deque-grensesnittet.

På en måte er ArrayList bedre å få tilgang til data, mens LinkedList er bedre å manipulere data. Begge klassene implementerer listegrensesnitt.

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

Produksjon:

 Traversing ArrayList... ankit peter mayank 

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

Produksjon:

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