logo

Kdaj uporabiti ArrayList in LinkedList v Javi

ArrayList zagotavlja stalni čas za operacijo iskanja, zato je bolje uporabiti ArrayList, če je iskanje pogostejša operacija kot operacija dodajanja in odstranjevanja. LinkedList zagotavlja stalni čas za operacije dodajanja in odstranjevanja. Zato je za manipulacijo bolje uporabiti LinkedList.

ArrayList ima O(1) časovno zapletenost za dostop do elementov prek metod get in set.

LinkedList ima O(n/2) časovno zapletenost za dostop do elementov.

Razred LinkedLinked implementira tudi vmesnik Deque, tako da lahko v LinkedList dobite funkcionalnost dvojno končane čakalne vrste. Razred ArrayList ne izvaja vmesnika Deque.

ArrayList je torej boljši za dostop do podatkov, medtem ko je LinkedList boljši za manipuliranje s podatki. Oba razreda izvajata vmesnik List.

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

Izhod:

 Traversing ArrayList... ankit peter mayank 

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

Izhod:

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