Home > Informatik > Java-Klassen > ArrayList

ArrayList

Allgemeines

Objekte...

Konstruktoren

Wichtige Methoden

Weitere Methoden

Weitere Methoden finden Sie in der Original-Dokumentation der Klasse ArrayList auf der Webseite von Oracle.

Konstruktoren im Detail

ArrayList()

Das ist der einfachste Konstruktor der Klasse ArrayList, mit dem man auf einfache Weise eine leere Liste mit einer Kapazität von 10 erzeugen kann.

ArrayList(int initialCapacity)

Erzeugt eine leere ArrayList mit der angegebenen Kapazität

ArrayList(Collection C)

Erzeugt eine ArrayList, die alle Element der übergebenen Collection C übernimmt, und zwar in der gleichen Reihenfolge wie in der Collection.

Methoden im Detail

add(Datentyp d)

Syntax:
  1. public void add(Datentyp objekt)
  2. public void add(int index, Datentyp objekt)
Rückgabewert:

---

Funktion:

Diese Methode fügt ein Objekt objekt in die ArrayList ein.

  1. Der erste Konstruktor hängt das neue Element an das Ende der List an.
  2. Bei dem zweiten Konstruktor kann man auch die Position angeben, an der das Element eingefügt werden soll. Die anderen Elemente rücken dann je eine Position nach rechts.
Bemkerung:

Bei dem einzufügenden Element muss es sich um ein Objekt einer Klasse handeln. Primitive Datentypen können nicht auf diese Weise in eine ArrayList eingefügt werden - sie müssen zuvor in ein Objekt umgewandelt werden, beispielsweise mit einer der Wrapper-Methoden.

Codebeispiel 1:
import java.util.ArrayList;

public class ArrayListTest
{
    ArrayList namen;
    
    public ArrayListTest()
    {
       namen = new ArrayList<>();
       namen.add("Hans");
       namen.add("Lotte");
       namen.add(1,"Karl");
       
       if (namen.add("Franz"))
          System.out.println("Franz wurde hinzugefügt");
       else
          System.out.println("Franz konnte nicht hinzugefügt werden");
    }
}

Hier sehen wir vier Beispiele für die enorme Vielfalt der append()-Methode. Wenn Sie noch mehr Möglichkeiten sehen wollen, gehen Sie einfach auf die Oracle-Dokumentation der Klasse StringBuilder.

Wenn dieser Code ausgeführt wurde, besteht die ArrayList aus den Objekten "Hans", "Karl", "Lotte" und "Franz". Die anderen sechs Element der insgesamt aus 10 Elementen bestehenden Liste haben den Wert null.

clear()

Syntax:

public void clear()

Rückgabewert:

---

Funktion:

Löscht die gesamte ArrayList.

Anmerkungen:

Man könnte nun denken, nach dem Löschen besteht die ArrayList wieder aus 10 Elementen mit dem Wert null. Das ist aber nicht der Fall. Die Größe (size) der ArrayList ist tatsächlich 0, es sind keine Elemente mehr vorhanden, auch keine null-Elemente. Ein Aufruf wie get(0) würde dann zu einer Fehlermeldung führen, weil es ja kein Element mit dem Index 0 gibt.

Siehe dazu auch die Anmerkungen für die Methode isEmpty().

contains()

Syntax:

public boolean contains(Datentyp objekt)

Rückgabewert:

true oder false

Funktion:

Überprüft, ob das übergebene Objekt in der Liste enthalten ist.

get()

Syntax:

public Datentyp get(int index)

Rückgabewert:

Ein Objekt des in der ArrayList gespeicherten Datentyps

Funktion:

Liest das Element aus, das sich an der angegebenen Position index befindet.

isEmpty()

Syntax:

public boolean isEmpty()

Rückgabewert:

true oder false

Funktion:

Überprüft, ob die Liste leer ist und die Länge 0 hat.

Codebeispiel:
ArrayListnamen = new ArrayList<>();
boolean b = namen.isEmpty(); // ⟹ true
int s = namen.size(); // ⟹ 0

Dieses Beispiel zeigt, dass eine neu angelegte ArrayList die Länge 0 hat und leer ist. Die Kapazität der neuen Liste hat zwar den Wert 10, aber die Länge (size()) der ArrayList hat den Wert 0. Formal gesehen besitzt die neue ArrayList also keine Elemente, also auch keine null-Elemente.

Intern sieht die Sache etwas anders aus. Eine ArrayList basiert technisch auf einem gewöhnlichen Array. Wenn eine neue ArrayList erzeugt wird, legt der Konstruktor intern sofort ein Array der Größe 10 an, dieser Array existiert dann konkret im Speicher. Der Objektinspektor von BlueJ zeigt dann auch tatsächlich 10 Elemente mit dem Wert null an.

Formal - und für die Entwickler wichtig - die ArrayList ist leer und besteht aus 0 Elementen! Darauf kann man sich verlassen. Wie es intern aussieht, ist völlig egal (Information hiding, Datenkapselung).

remove()

Syntax:
  1. public boolean remove(Object o)
  2. public void remove(int index)
Rückgabewert:
  1. true, falls das Objekt o gefunden und entfernt wurde, sonst false
  2. ---
Funktion:
  1. Entfernt das erste Vorkommen des Objektes o, falls vorhanden
  2. Entfernt das Objekt an der Position index
Codebeispiel:
ArrayList namen = new ArrayList<>();
namen.add("Anna");
namen.add("Bernd");
namen.add("Clara");

boolean ok = namen.remove("Clara"); 
System.out.println(ok);     // true
System.out.println(namen);  // [Anna, Bernd]
set()

Syntax:

public void set(int index, Datentyp Element)

Rückgabewert:

---

Funktion:

Ersetzt das Element an der Position index durch das neue Element.

Codebeispiel:
namen = new ArrayList<>();
namen.add("Hans");
namen.add("Lotte");
namen.set(1, "Karl");

Die ArrayList hat nach Ausführung dieser Zeilen folgende Elemente: "Hans", "Karl". Das Element "Lotte" an Index 1 wurde durch "Karl" ersetzt.

size()

Syntax:

public int size()

Rückgabewert:

int

Funktion:

Gibt die Anzahl der tatsächlich in der Liste enthaltenen Elemente zurück, nicht aber die Kapazität der Liste, die in der Regel höher ist.

Quellen:

  1. Habelitz: Programmieren lernen mit Java, 8. Auflage, Rheinwerk-Verlag Bonn 2025.