Was ist Dynamic Array in Java?

Das dynamische Array in Java ist eine Art Array mit einer enormen Verbesserung für die automatische Größenänderung. Die einzige Einschränkung von Arrays besteht darin, dass es sich um eine feste Größe handelt.

Arrays in sind homogene Datenstrukturen, die in Java als Objekte implementiert sind. Arrays speichern einen oder mehrere Werte eines bestimmten Datentyps und bieten indizierten Zugriff zum Speichern desselben. Auf ein bestimmtes Element in einem Array wird über seinen Index zugegriffen. In diesem Artikel werden wir Dynamic Array in Java in der folgenden Reihenfolge diskutieren:

Was ist Big Data Hadoop

Einführung in Dynamic Array in Java

Das dynamische Array ist ein solcher Array-Typ mit einer enormen Verbesserung für die automatische Größenänderung. Die einzige Einschränkung von Arrays besteht darin, dass es sich um eine feste Größe handelt. Dies bedeutet, dass Sie nur die Anzahl der Elemente angeben können, die Ihr Array im Voraus enthalten kann. Andererseits können die dynamischen Arrays erweitert werden, wenn wir in Echtzeit weitere Elemente hinzufügen. Daher muss der Codierer die Größe des Arrays nicht im Voraus bestimmen. Es hat noch ein paar Stärken:





  • Schnelle Suche . Genau wie bei Arrays dauert das Abrufen des Elements an einem bestimmten Index O (1).



  • Variable Größe . Wir können so viele Elemente einfügen, wie wir möchten, und ein dynamisches Array wird entsprechend erweitert, um sie aufzunehmen.

  • Cache-freundlich . Ähnlich wie bei Arrays können dynamische Arrays Elemente nebeneinander im Speicher ablegen, wodurch Caches effizient genutzt werden.



Die Verwendung dynamischer Arrays in unserem Code hat einige Nachteile. Obwohl wir in den meisten Anwendungen mehr als alles andere dynamische Arrays verwenden, werden sie in einigen Fällen aufgrund ihrer Einschränkungen nicht zur bevorzugten Wahl.

  • Langsamer Worst-Case-Anhang . Normalerweise wird beim Hinzufügen eines neuen Elements am Ende eines dynamischen Arrays an einer Instanz O (1) benötigt. Wenn das dynamische Array jedoch keine weiteren Indizes für ein neues Element enthält, muss es erweitert werden, was jeweils O (n) erfordert.

  • Kostspielige Einfügungen und Löschungen. Ähnlich wie bei Arrays werden die Elemente nebeneinander gespeichert. Beim Hinzufügen oder Entfernen eines Elements in der Mitte eines Arrays müssen also andere Elemente verschoben werden, wobei jeweils O (n) benötigt wird.

Die folgenden Diagramme zeigen, wie die Arrays in Echtzeit funktionieren, und zeigen, wie die Elemente gestapelt sind. Es zeigt auch, wie sich die Anweisungen für einen Durchschnittsfall und den schlechtesten Fall von Array-Funktionen ändern.

Array - dynamisches Array in Java - Edureka

Größe vs. Kapazität

Wenn wir ein dynamisches Array initialisieren, erstellt die Implementierung des dynamischen Arrays ein verstandenes Array mit fester Größe. Die Anfangsgröße entspricht der Implementierung. Lassen Sie uns zum Beispiel unser Implementierungsarray so gestalten, dass es 10 Indizes verwendet. Jetzt hängen wir vier Elemente an unser dynamisches Array an. Jetzt hat unser dynamisches Array eine Länge von vier. Unser zugrunde liegendes Array hat jedoch eine Länge von 10. Daher können wir sagen, dass die Größe des dynamischen Arrays vier und seine Kapazität 10 beträgt. Ein dynamisches Array speichert einen bestimmten Endindex, um den Endpunkt des dynamischen Arrays und den Start zu verfolgen Punkt, an dem die zusätzliche Kapazität beginnt.

Verdoppeln Anhängt

Es kann Fälle geben, in denen wir versuchen, ein Element an ein Array anzuhängen, in dem die Kapazität bereits voll ist. Um raumdynamische Arrays zu erstellen, erstellen Sie daher automatisch ein neues, größeres und zugrunde liegendes Array. Normalerweise wird es doppelt so groß, um neue Ergänzungen zu verarbeiten, die zuvor nicht erwartet wurden. Das Kopieren jedes Elements nimmt daher keine Zeit in Anspruch. Wenn Sie ein Element an unser dynamisches Array anhängen, wird automatisch ein neues zugrunde liegendes Array mit doppelter Größe erstellt, dessen Anhängen keine Zeit in Anspruch nimmt.

Ein Element löschen

Beim Löschen eines Elements aus einem Array entfernt die Standardmethode 'remove ()' ein Element vom Ende und speichert automatisch Null am letzten Index. Außerdem werden Elemente an einem bestimmten Index gelöscht, indem die Methode removeAt (i) aufgerufen wird, wobei 'I' der Index ist. Die Methode removeAt (i) verschiebt alle rechten Elemente auf der linken Seite vom angegebenen Index.

Ändern der Größe eines Arrays

Wenn Arrays keine Daten auf der rechten Seite des Arrays haben, die unnötigen Speicher beanspruchen, gibt die Methode srinkSize () zusätzlichen Speicher frei. Wenn alle Slots belegt sind und zusätzliche Elemente hinzugefügt werden, muss das zugrunde liegende Array mit fester Größe vergrößert werden. Die eigentliche Größenänderung ist teuer, da wir ein größeres Array zuweisen und alle Elemente aus einem überwucherten Array weiterleiten müssen, bevor es schließlich ein neues Element anhängen kann.

Unten sehen Sie ein Beispiel für ein Programm, bei dem die Arraygröße voll wird und neue Elemente in ein neues Array mit doppelter Größe kopiert werden. Das Element, das ein String-Element namens 'Mahavir' ist, ist eine Ergänzung zu dem bereits vollständigen Array der Größe 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public statisch void main (String args []) {Scanner sc = neuer Scanner (System.in) System.out.println (' Geben Sie die Größe des Arrays ein :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Geben Sie Elemente des Arrays (Strings) :: ') für (int i = 0 i

Ausgabe:

Damit kommen wir zum Ende des Dynamic Array in Java-Artikels. Ich hoffe, Sie haben eine Vorstellung davon, wie Sie mit dynamischen Arrays arbeiten.

Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka richtet sich an Studenten und Fachleute, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Hast du eine Frage an uns? Bitte erwähnen Sie dies im Kommentarbereich dieses Blogs „Dynamic Array in Java“. Wir werden uns so schnell wie möglich bei Ihnen melden.