Was ist in Java der Unterschied zwischen einem Array und einer ArrayList?
Ich weiß nur, dass man in einem Array mehrere Zeichen speichern kann aber eine 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.
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.
"und wächst" ist richtig, "oder schrumpft" aber ist falsch.
Lies https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
Eine ArrayList ist ein dynamisch wachsendes Array, das mehr Speicher alloziert, wenn mehr Elemente hinzugefügt werden.
Da hast du dich aber mit der Syntax vertan!