ArrayList bietet eine konstante Zeit für Suchvorgänge. Daher ist es besser, ArrayList zu verwenden, wenn die Suche häufiger durchgeführt wird als der Vorgang zum Hinzufügen und Entfernen. Die LinkedList bietet eine konstante Zeit für Hinzufügungs- und Entfernungsvorgänge. Daher ist es besser, LinkedList zur Manipulation zu verwenden.
ArrayList hat eine Zeitkomplexität von O(1), um über die Get- und Set-Methoden auf Elemente zuzugreifen.
LinkedList hat eine Zeitkomplexität von O(n/2), um auf die Elemente zuzugreifen.
Die LinkedLinked-Klasse implementiert auch die Deque-Schnittstelle, sodass Sie die Funktionalität einer doppelendigen Warteschlange in LinkedList nutzen können. Die ArrayList-Klasse implementiert die Deque-Schnittstelle nicht.
In gewisser Weise ist ArrayList besser für den Zugriff auf Daten geeignet, während LinkedList besser für die Datenbearbeitung geeignet ist. Beide Klassen implementieren die List-Schnittstelle.
ArrayList-Beispiel
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); } } }
Ausgabe:
Traversing ArrayList... ankit peter mayank
LinkedList-Beispiel
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); } }
Ausgabe:
After adding: [ankit, peter, mayank] After removing: [ankit, mayank] After changing: [ankit, vivek]