Kapazität eines ArrayList
ist nicht dasselbe wie sein Größe . Größe ist gleich der Anzahl der Elemente, die in der Datei ArrayList
(und alle anderen List
Umsetzung).
En Kapazität ist lediglich die Länge des zugrunde liegenden Arrays, das zur internen Speicherung der Elemente der ArrayList
und ist immer größer oder gleich dem Größe der Liste.
Bei einem Anruf set(index, element)
auf der Liste, die index
bezieht sich auf die tatsächliche Anzahl der Listenelemente (=Größe) (die in Ihrem Code Null ist, weshalb die AIOOBE
ausgelöst wird), nicht auf die Array-Länge (=Kapazität) (dies ist ein Implementierungsdetail, das für die ArrayList
).
En set
Methode ist für alle List
Implementierungen, wie zum Beispiel LinkedList
die nicht durch ein Array, sondern durch eine verknüpfte Kette von Einträgen realisiert wird.
Editer : Sie verwenden die add(index, element)
Methode, nicht set(index, element)
aber das Prinzip ist hier das gleiche.