Nachdem wir uns mit Arrays beschäftigt haben, wollen wir uns nun ArrayLists vorstellen. ArrayLists sind Teil des Java Collections Frameworks und bieten eine flexiblere Möglichkeit, mit Listen von Objekten zu arbeiten. Im Gegensatz zu Arrays können ArrayLists dynamisch an Größe wachsen oder schrumpfen.
-
Öffnen Sie die Datei ArrayListDemo.java in Ihrem Projektverzeichnis.
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
// We'll add our code here
}
}
Beachten Sie die import-Anweisung oben. Diese teilt Java mit, dass wir die ArrayList-Klasse in unserem Programm verwenden möchten.
-
Erstellen wir nun eine ArrayList von Strings. Fügen Sie diese Zeile in die main-Methode ein:
ArrayList<String> fruits = new ArrayList<>();
Dies erstellt eine leere ArrayList, die String-Objekte enthalten kann. Der <String>-Teil wird "Generics" genannt und gibt den Typ der Elemente an, die die ArrayList enthalten wird.
-
Fügen wir einige Elemente zu unserer ArrayList hinzu. Fügen Sie diese Zeilen hinzu:
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
Die add()-Methode fügt Elemente am Ende der Liste hinzu.
-
Geben wir nun unsere ArrayList aus. Fügen Sie diesen Code hinzu:
System.out.println("Fruits in the list:");
for (String fruit : fruits) {
System.out.println(fruit);
}
Dies verwendet eine erweiterte for-Schleife, um durch die ArrayList zu iterieren, ähnlich wie wir es mit Arrays getan haben.
Tipp: Sie können Ihr Programm jederzeit kompilieren und ausführen, um die Ausgabe zu sehen. Oder Sie können weiter Code hinzufügen und alles am Ende ausführen.
-
ArrayLists haben viele nützliche Methoden. Probieren wir einige aus. Fügen Sie diesen Code hinzu:
System.out.println("\nNumber of fruits: " + fruits.size());
System.out.println("The second fruit is: " + fruits.get(1));
size() gibt die Anzahl der Elemente in der ArrayList zurück, und get(index) ruft das Element am angegebenen Index ab.
-
Wir können auch Elemente in einer ArrayList mit der set()-Methode ersetzen. Fügen Sie diesen Code hinzu:
// Before: [Apple, Banana, Cherry]
fruits.set(1, "Blueberry"); // Replaces "Banana" with "Blueberry"
System.out.println("\nAfter replacing the second fruit:");
System.out.println(fruits); // [Apple, Blueberry, Cherry]
set(index, element) ersetzt das Element am angegebenen Index durch ein neues Element. Die Größe der ArrayList bleibt dabei gleich.
-
Im Gegensatz zu Arrays ermöglichen es uns ArrayLists, Elemente an beliebiger Position mit der add(index, element)-Methode einzufügen. Dies unterscheidet sich von der set()-Methode, die wir zuvor gesehen haben. Schauen wir uns an, wie add() funktioniert:
// Before: [Apple, Blueberry, Cherry]
fruits.add(1, "Blackberry");
System.out.println("\nAfter inserting Blackberry at index 1:");
System.out.println(fruits);
// After: [Apple, Blackberry, Blueberry, Cherry]
Lassen Sie uns verstehen, was passiert ist:
add(1, "Blackberry") fügt "Blackberry" an Index 1 ein.
- Die vorhandenen Elemente ab Index 1 (Blueberry, Cherry) werden automatisch um eine Position nach rechts verschoben.
- Die Größe der ArrayList erhöht sich um 1.
- Dies unterscheidet sich von
set(), das das vorhandene Element ersetzen würde, ohne zu verschieben oder die Größe zu ändern.
Um den Unterschied zu visualisieren:
// Using add(index, element) - inserts and shifts
fruits.add(1, "Blackberry"); // [Apple, Blackberry, Blueberry, Cherry]
// Using set(index, element) - replaces without shifting
fruits.set(1, "Blackberry"); // [Apple, Blackberry, Cherry]
-
Wir können auch Elemente aus einer ArrayList entfernen. Fügen Sie diesen Code hinzu:
fruits.remove("Cherry");
System.out.println("\nAfter removing Cherry:");
System.out.println(fruits);
Dies entfernt das erste Vorkommen von "Cherry" aus der ArrayList. Wenn ein Element entfernt wird, werden alle nachfolgenden Elemente nach links verschoben, um die Lücke zu schließen.
-
Überprüfen wir schließlich, ob bestimmte Elemente in unserer ArrayList enthalten sind:
System.out.println("\nDoes the list contain Apple? " + fruits.contains("Apple"));
System.out.println("Does the list contain Cherry? " + fruits.contains("Cherry"));
Die contains()-Methode überprüft, ob die ArrayList ein bestimmtes Element enthält, und gibt einen booleschen Wert zurück.
-
Speichern Sie die Datei, kompilieren und führen Sie das Programm aus:
javac ~/project/ArrayListDemo.java
java -cp ~/project ArrayListDemo
Sie sollten eine Ausgabe ähnlich dieser sehen:
Fruits in the list:
Apple
Banana
Cherry
Number of fruits: 3
The second fruit is: Banana
After replacing the second fruit:
[Apple, Blueberry, Cherry]
After inserting Blackberry at index 1:
[Apple, Blackberry, Blueberry, Cherry]
After removing Cherry:
[Apple, Blackberry, Blueberry]
Does the list contain Apple? true
Does the list contain Cherry? false
Herzlichen Glückwunsch! Sie haben nun eine ArrayList erstellt, Elemente hinzugefügt und entfernt, auf Elemente über den Index zugegriffen und verschiedene ArrayList-Methoden verwendet. Sie haben die wichtigen Unterschiede zwischen Operationen wie add(), die Elemente einfügt und verschiebt, und set(), die Elemente ersetzt, gelernt. ArrayLists bieten mehr Flexibilität als Arrays, da sie je nach Bedarf wachsen und schrumpfen können. Dies macht sie sehr nützlich, wenn Sie nicht im Voraus wissen, wie viele Elemente Sie verarbeiten werden.