Was ist in Java der Unterschied zwischen einem Array und einer ArrayList?

3 Antworten

Eine Array wird mit einer festen Größe initialisiert und besitzt nur einen kleinen Funktionsumfang. Ist jedoch deutlich 'schlanker' als eine ArrayList.

Bei der Initialisierung ist die Größe anzugeben:

Object[] myArray = new Object[3];

Der Zugriff auf die einzelnen Elemente funktioniert über den Index in der Array:

myArray[1] = new Object();

Dir steht von der Array nur die Variable: Length zur Verfügung.

int length = myArray[1].length;

Die ArrayList wiederum ist ein Komplexere Klasse, welche eine Array als Speicher verwendet, jedoch dem Entwickler deutlich mehr Möglichkeiten bietet,  so wie eine dynamische Größe

Dir stehen beispielsweise Methoden zur Verfügung wie:

  • contains: Prüfen ob ein Element in der Liste enthalten ist
  • indexOf: Herausfinden des Indices in der Liste
  • clear: leeren der Liste.

In Java 8 kam noch der Stream dazu, der es dem Entwickler erleichtert, eine Liste zu filtern oder umzuwandeln.

Was die Verwendung betrifft: 

Reicht dir eine Array, wäre es Ratsam diese zu verwenden. Benötigst du einen höheren Umfang an Funktionalität, wären komplexere Klassen wie ArrayList interessant.

Neben der ArrayList, bzw. neben von List abgeleiteten Klassen gibt es noch andere Klassen, in denen sich Informationen speichern lassen, wie Sets oder Maps.

Unkreatiiiev  25.04.2017, 15:37

Da hast du dich aber mit der Syntax vertan!

int length = myArray[1].length;

0

Ein Array hat nach der ersten Definition eine feste Größe. Eine ArrayList​ ist Dynamisch und wächst oder schrumpft mit der Anzahl der Elemente.

Eine ArrayList ist ein dynamisch wachsendes Array, das mehr Speicher alloziert, wenn mehr Elemente hinzugefügt werden.