Sie können die anfängliche Größe für eine ArrayList festlegen, indem Sie
ArrayList<Integer> arr=new ArrayList<Integer>(10);
Allerdings können Sie nicht
arr.add(5, 10);
machen, da dies eine Ausnahme außerhalb der Grenzen verursacht.
Was nützt es, eine Anfangsgröße festzulegen, wenn man nicht auf den zugewiesenen Speicherplatz zugreifen kann?
Die Funktion "add" ist als "add(int index, Object element)" definiert, also füge ich nicht zu Index 10 hinzu.
Sie verwechseln die Größe der Array-Liste mit ihrer Kapazität:
Wenn Sie new ArrayList<Integer>(10)
aufrufen, setzen Sie die anfängliche Kapazität der Liste, nicht ihre Größe. Mit anderen Worten, wenn sie auf diese Weise konstruiert wird, beginnt die Array-Liste ihr Leben leer.
Eine Möglichkeit, der Array-Liste zehn Elemente hinzuzufügen, ist die Verwendung einer Schleife:
for (int i = 0; i < 10; i++) {
arr.add(0);
}
So können Sie nun die Elemente bei den Indizes 0..9 ändern.
10 ist die Anfangskapazität der AL, nicht die Größe (die 0 ist). Sie sollten die Anfangskapazität auf einen hohen Wert setzen, wenn Sie viele Elemente haben werden, da dies den Overhead vermeidet, der durch die Erweiterung der Kapazität entsteht, wenn Sie weitere Elemente hinzufügen.
Im Moment gibt es keine Elemente in Ihrer Liste, also können Sie nicht zum Index 5 der Liste hinzufügen, wenn dieser nicht existiert. Sie verwechseln die Kapazität der Liste mit ihrer aktuellen Größe.
Rufen Sie einfach auf:
arr.add(10)
um den Integer zu Ihrer ArrayList hinzuzufügen