Schließlich ist die häufig verwendete Implementierungsklasse von List ArrayList. Hier sind drei Punkte zu beachten, da Sie es effizient nutzen sollten, wenn Sie es mit aller Kraft einsetzen.
ArrayList ist eine Klasse zum Realisieren von Arrays variabler Länge. Es wird intern mithilfe von Arrays implementiert, reguläre Arrays haben jedoch eine feste Länge. Um eine variable Länge zu realisieren, müssen Sie ein neues Array mit größerer Größe erstellen und die Daten darauf kopieren, wenn das ursprünglich vorbereitete Array nicht ausreicht. Wenn Sie Daten in die Mitte einfügen, werden alle nachfolgenden Elemente kopiert und verschoben. Mit zunehmender Größe des Arrays wird der Prozess des Regenerierens und Kopierens eines solchen Arrays sehr langsam. Daher ist es wichtig, zu verhindern, dass eine solche Verarbeitung stattfindet, um ArrayList effizient zu verwenden.
Sie können die Anfangsgröße im ArrayList-Konstruktor angeben. Da das Array zuerst mit der angegebenen Anfangsgröße generiert wird, wird das Array erst neu generiert, wenn es diese Größe überschreitet.
Wenn die Anzahl der Elemente beispielsweise höchstens 100 beträgt, wird eine ArrayList mit einer Anfangskapazität von 100 erstellt, indem Sie die folgenden Schritte ausführen.
List<String> list = new ArrayList<String>(100);
ensureCapacity sureCapacity ist eine Methode, um die Größe von ArrayList sicherzustellen. Es wird verwendet, wenn die im Konstruktor angegebene Anfangsgröße wahrscheinlich stark überschritten wird. Wenn Sie beispielsweise einer ArrayList, die mit einer Anfangsgröße von 100 initialisiert wurde, 1000 Elemente hinzufügen und 1000-mal normal hinzufügen, kann die Regeneration in der Mitte mehrmals erfolgen. Mit sureCapacity wird die Größe jedoch im Voraus auf 1000 erweitert. Wenn Sie dies tun, müssen Sie es nur einmal tun.
trimToSize trimToSize ist eine Methode, mit der die Größe von ArrayList um die aktuelle Anzahl von Elementen gekürzt wird. Wenn beispielsweise eine mit einer Anfangsgröße von 1000 initialisierte ArrayList nur 100 Elemente enthält, werden 900 Bereiche verschwendet, sodass Sie diesen Bereich abschneiden können, um ihn freizugeben. Natürlich ist die Größe kleiner. Wenn Sie danach versuchen, ein Element hinzuzufügen, wird das Array neu zugewiesen. Daher wird empfohlen, es zu verwenden, wenn das Element bei der nachfolgenden Verarbeitung nicht hinzugefügt wird.
Recommended Posts