logo

Mikor kell használni az ArrayList-et és a LinkedList-et Java-ban

Az ArrayList állandó időt biztosít a keresési művelethez, ezért jobb az ArrayList használata, ha a keresés gyakoribb, mint az összeadás és eltávolítás művelet. A LinkedList állandó időt biztosít a hozzáadási és eltávolítási műveletekhez. Tehát jobb a LinkedList használata a manipulációhoz.

Az ArrayList O(1) időbonyolultsággal rendelkezik az elemek eléréséhez a get és set metódusokon keresztül.

A LinkedList O(n/2) időbonyolultsággal rendelkezik az elemek eléréséhez.

A LinkedLinked osztály a Deque felületet is megvalósítja, így a LinkedListben megkaphatja a kétvégű sor funkcióit. Az ArrayList osztály nem valósítja meg a Deque interfészt.

Az ArrayList jobb az adatokhoz való hozzáféréshez, míg a LinkedList jobb az adatok manipulálásához. Mindkét osztály megvalósítja a List interfészt.

ArrayList példa

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

Kimenet:

 Traversing ArrayList... ankit peter mayank 

LinkedList példa

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

Kimenet:

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