Was ist eine Arraylist?
Eine ArrayList in der Computerprogrammierung ist eine Datenstruktur, die sich wie ein Computerarray verhält, aber auch die Fähigkeit implementiert, die Größe des Arrays bei Bedarf dynamisch zu erweitern.Im Gegensatz zu einem intrinsischen Array -Datentyp, der während der Programmausführung nicht geändert werden kann, kann die ArrayList -Struktur die Größe des Arrays als Reaktion auf die Hinzufügung oder Löschung von Elementen wachsen und schrumpfen.Es hat ein sehr günstiges Leistungsprofil, das einen schnellen Zufallszugriff auf die Datenerfassung ermöglicht.Es gibt jedoch zwei Fälle, in denen es langsamer ist als einige andere Datenstrukturen, nämlich die Zugabe und Entfernung von Elementen aus der Mitte des Arrays.Die meisten objektorientierten Programmiersprachen verfügen über eine Art von Implementierung einer solchen ListeEine gesamte Folge von Daten, um eine Adresse zu finden, die mit verknüpften Listen erforderlich ist.Mit der Fähigkeit, die Größe des Arrays nach Bedarf zu erhöhen, ist es ein sehr ausgewogener Ansatz, der sowohl Flexibilität als auch Geschwindigkeit berücksichtigt.Wenn Elemente aus einer solchen Liste entfernt werden, wird die Größe des Arrays reduziert und der Speicherplatz freigegeben.
Ein Vorteil der Verwendung einer Arraylist über einige andere Datenstrukturen besteht darin, dass ein Wrapper -Objekt nicht erforderlich ist, um die Daten enthalten zu enthaltengelagert.Bei einer verknüpften Liste oder einer Hash -Tabelle wird normalerweise ein separates Objekt benötigt, um die Technik beizubehalten, die zum Halten und Manipulieren der Sammlung verwendet wird.Bei einer ArrayList sind die einzigen Informationen, die über die Datenobjekte benötigt werden, die Adresse des Objekts im Speicher.Dies bedeutet, dass bei der Arbeit mit dieser Art von Liste eine weniger Overhead -Speicherverwendung vorhanden ist.
Ein potenzielles Problem bei der Verwendung einer ArrayList kann aus dem Implementierungs- und Speicherverwaltungssystem stammen.Die meisten Arrays werden als aufeinanderfolgende Speicherorte zugewiesen.Um also eine ArrayList einer bestimmten Größe zu verwenden, muss mindestens so viel Speicher in einer ununterbrochenen Folge von Blöcken verfügbar sein.Das dynamische Array könnte sich mehrmals ändern, sodass eine Speicherfragmentierung auftreten und zu einem Speicherzuweisungsfehler führen kann, der die Programmausführung anhält.
Die Leistung einer Arraylist ähnelt dem der Verwendung eines Standardarrays, obwohl die Zugriffszeiten etwas langsamer sind, weil es etwas langsamer ist, weilDas Array ist in einem Objekt eingekapselt.Ein Instanz, in dem ein dynamisches Array je nach Implementierung dramatisch verlangsamt werden kann, ist, wenn die Größe des Arrays geändert werden muss.Dies kann das Kopieren des aktuellen Arrays in ein neues Array beinhalten, das der neuen gewünschten Größe zugeordnet wurde, was zu einem vorübergehenden Leistungsverschlechterung führt.Das gleiche Problem kann beim Hinzufügen oder Entfernen eines Elements aus der Mitte der Liste auftreten, wodurch alle folgenden Elemente an einen neuen Ort verschoben werden müssen.