Wird die folgende Anweisung das Array größer machen?
list = new String[5];
Nein. Die Anweisung erzeugt ein völlig neues Array-Objekt (mit fünf Zellen). Das alte Array-Objekt und die darin enthaltenen Informationen sind jetzt Ausschuss (Garbage), es sei denn, es gibt noch eine andere Referenzvariable die darauf verweist.
In dem Beispiel wird die Referenzvariable list
auf das neu konstruierte Objekt gesetzt. Die Abbildung zeigt was passiert. Die diagonalen Schrägstriche stehen für null
, den Wert, der "kein Objekt" bedeutet.
Die Informationen des alten Arrays wurden nicht in das neue Array übertragen. Um die alten Informationen zu behalten, muss das Programm einen Verweis auf das alte Array behalten und die alten Informationen in das neue Array kopieren. Das ist nicht allzu schwer, aber lästig.
Was passiert, wenn die Information einer Zelle hinzugefügt wird, die nicht existiert?
String[] list = new String[3];
list[0] = "ant" ;
list[1] = "bat" ;
list[2] = "cat" ;
list[3] = "dog" ;