ArrayList und LinkedList implementieren beide die List-Schnittstelle und behalten die Einfügungsreihenfolge bei. Beides sind nicht synchronisierte Klassen.
Es gibt jedoch viele Unterschiede zwischen den Klassen ArrayList und LinkedList, die unten angegeben sind.
Anordnungsliste | VerlinkteListe |
---|---|
1) ArrayList verwendet intern ein dynamisches Array , um die Elemente zu speichern. | LinkedList verwendet intern eine doppelt verknüpfte Liste , um die Elemente zu speichern. |
2) Die Manipulation mit ArrayList ist langsam , da sie intern ein Array verwendet. Wenn ein Element aus dem Array entfernt wird, werden alle Bits im Speicher verschoben. | Die Manipulation mit LinkedList ist schneller als ArrayList, da eine doppelt verknüpfte Liste verwendet wird, sodass im Speicher keine Bitverschiebung erforderlich ist. |
3) Eine ArrayList-Klasse kann nur als Liste fungieren, weil sie nur List implementiert. | Die LinkedList-Klasse kann sowohl als Liste als auch als Warteschlange fungieren, da sie List- und Deque-Schnittstellen implementiert. |
4) ArrayList ist besser zum Speichern und Zugreifen auf Daten. | LinkedList eignet sich besser zum Manipulieren von Daten. |
Beispiel für ArrayList und LinkedList in Java
Sehen wir uns ein einfaches Beispiel an, in dem wir sowohl ArrayList als auch LinkedList verwenden.
- java.util.* importieren ;
- Klasse TestArrayLinked{
- public static void main(String args[]){
- Liste<String> al= neue ArrayList<String>(); // Arrayliste erstellen
- al.add( “Ravi” ); //Objekt in Arraylist hinzufügen
- al.add( “Vijay” );
- al.add( “Ravi” );
- al.add( “Ajay” );
- Liste<String> al2= neue LinkedList<String>(); // Linkliste erstellen
- al2.add( “James” ); // Objekt in Linkedlist hinzufügen
- al2.add( “Serena” );
- al2.add( “Swati” );
- al2.add( “Junaid” );
- System.out.println( “arraylist: ” +al);
- System.out.println( “verknüpfte Liste: ” +al2);
- }
- }
Ausgabe:
Arrayliste: [Ravi,Vijay,Ravi,Ajay] verlinkte Liste: [James,Serena,Swati,Junaid]