Empfohlen, 2024

Tipp Der Redaktion

Unterschied zwischen ArrayList und Vector in Java

ArrayList und Vector sind beide Klassen der Collection Framework-Hierarchie. ArrayList und Vector werden beide verwendet, um ein dynamisches Array von Objekten zu erstellen, bei dem das Array bei Bedarf vergrößert werden kann. Es gibt zwei grundlegende Unterschiede, die ArrayList und Vector unterscheiden: Vector gehört zu Legacy-Klassen, die später zur Unterstützung der Collection-Klassen überarbeitet wurden, während ArrayList eine Standard-Collection-Klasse ist. Ein weiterer wichtiger Unterschied ist, dass ArrayList andererseits nicht synchronisiert ist. Vektor ist synchronisiert.

Untersuchen wir einige andere Unterschiede mit Hilfe der unten gezeigten Vergleichstabelle.

Vergleichstabelle

VergleichsgrundlageAnordnungslisteVektor
BasicDie ArrayList-Klasse ist nicht synchronisiert.Die Vektorklasse wird synchronisiert.
VermächtnisklasseArrayList ist eine Standard-Collection-Klasse.Vector ist eine alte Klasse, die zur Unterstützung der Collection-Klasse überarbeitet wurde.
KlassenerklärungKlasse ArrayListKlasse Vektor
NeuzuteilungWenn nicht angegeben, wird eine ArrayList um die Hälfte erhöht.Wenn nichts angegeben wird, wird ein Vektor erhöht, um seine Größe zu verdoppeln.
PerformanceDa ArrayList nicht synchronisiert ist, arbeitet es schneller als Vector.Wenn Vector synchronisiert ist, arbeitet es langsamer als ArrayList.
Aufzählung / IteratorArrayList verwendet die Iterator-Schnittstelle, um die in ArrayList gespeicherten Objekte zu durchlaufen.Vector verwendet die Aufzählung sowie die Iterator-Schnittstelle, um die in Vectors gespeicherten Objekte zu durchlaufen.

Definition von ArrayList

ArrayList gehört zu der Liste der Standardsammelklassen. Die Klasse ArrayList ist im java.util- Paket definiert. Sie erweitert die AbstractList- Klasse, die ebenfalls eine Standardauflistungsklasse ist, und implementiert auch List, eine in Collection Interfaces definierte Schnittstelle. In Java hat ein Standardarray immer eine feste Länge. Das bedeutet einmal geschaffen; es wächst nicht dynamisch oder verkleinert sich nicht. Sie sollten also über die Länge des von Ihnen verwendeten Arrays Bescheid wissen. Manchmal kann es jedoch vorkommen, dass die erforderliche Länge zur Laufzeit angezeigt wird, um diese Situation in Java umzusetzen, die mit ArrayList eingeführt wurde.

Die ArrayList ist eine Klasse, die zum dynamischen Erstellen eines Arrays verwendet wird, das die Referenzen auf die Objekte enthält. Dieses Array kann bei Bedarf größer werden. Die Klassendeklaration lautet wie folgt:

 Klasse ArrayList 

Hier gibt E den Typ der Objekte an, die ein Array aufnehmen soll. Das erstellte Array weist eine variable Länge auf und nimmt zu, wenn Objekte hinzugefügt oder aus der Liste entfernt werden.

Die ArrayList ist nicht synchronisiert, dh, es kann mehr als ein Thread gleichzeitig mit dem Array arbeiten. Wenn zum Beispiel ein Thread dem Array einen Objektverweis hinzufügt und ein anderer Thread gleichzeitig einen Objektverweis aus demselben Array entfernt. Die Erstellung eines dynamischen Arrays mithilfe der ArrayList-Klasse:

 ArrayList S1 = neue ArrayList (); System.out.println ("Anfangsgröße von S1:" + S1.size ()); S1.add ("T"); S1.add ("C"); S1.add ("H"); S1.add (1, "E"); System.out.println ("Nach Zugabe enthält S1:" + S1); System.out.println ("Größe von S1 nach der Addition:" + S1.size ()); S1. Entfernen ("T"); S1. Entferne (2); System.out.println ("Nach dem Löschen enthält S1:" + S1); System.out.println ("Größe von S1 nach dem Löschen:" + S1.size ()); // OutputInitial size of S1: 0 Nach der Addition enthält S1: [T, E, C, H]; Größe von S1 nach Zugabe: 4 Nach dem Löschen enthält S1: [E, H] Größe von S1 nach dem Löschen: 2 

Im obigen Code können Sie das sehen; Ich habe ein Array von Objekten vom String-Typ erstellt. Ich fügte dem Array S1 einige Objekte mit der add () - Methode hinzu und löschte später einige Objekte mit der remove () - Methode. Sie können feststellen, ob Sie die Anfangsgröße des Arrays nicht '0' angeben. Wie Sie sehen, wächst und verkleinert sich das Array, wenn Sie die Elemente hinzufügen und löschen.

Definition von Vektor

Vector ist eine Legacy-Klasse, die zur Unterstützung der Collection-Klasse in der Collection Framework-Hierarchie überarbeitet wurde. Die Vektorklasse wird auch im java.util- Paket definiert, um die AbstractList- Klasse erweitert und von der List- Schnittstelle implementiert. Die Vector-Klasse wird wie folgt deklariert:

 Klasse Vektor 

Hier definiert das E den Objekttyp, der in einem Array gespeichert wird. Ein mit der Vector-Klasse erstelltes Array hat eine variable Länge. Wenn das Inkrement nicht angegeben wird, wird die Größe doppelt so groß. Verstehen wir die Erstellung eines Arrays mit Vector.

 Vektor V = neuer Vektor (1, 1); V.addElement ("Tech"); V.addElement ("Unterschiede"); System.out.println ("Kapazität nach Zusatz 2:" + V.capacity ()); V.addElement ("Zwischen"); V. addElement ("Vektoren"); System.out.println ("Aktuelle Kapazität:" + V.capacity ()); // Ausgangskapazität nach 2 Hinzufügung: 2 Stromkapazität: 4 

Im obigen Code können Sie sehen, dass ich insbesondere die Größe und den Inkrementwert im Konstruktor von Vector erwähnt habe, während ich das Array von String-Objekten deklarierte. Daher können Sie beobachten, dass sich die Grenze des Arrays nach Abschluss des Arrays um den beim Konstruktor während der Deklaration angegebenen Wert erhöht.

Hauptunterschiede zwischen ArrayList und Vektoren

  1. Mehrere Threads könnten gleichzeitig mit ArrayList arbeiten, daher wird es als nicht synchronisiert betrachtet . Im Gegensatz zu ArrayList kann immer nur ein einzelner Thread einen Vektor bearbeiten. daher heißt es synchronisiert .
  2. In einer früheren Version von Java würden einige Klassen und Schnittstellen die Methoden zum Speichern von Objekten bereitstellen, die als Legacy-Klassen bezeichnet wurden. Vector gehört zu der Legacy-Klasse von Java. Später wurden diese älteren Klassen zur Unterstützung der Collection-Klasse überarbeitet, während die ArrayList-Klasse eine Standard-Collection-Klasse ist.
  3. Wenn das Limit eines Arrays vollständig ausgenutzt ist und ein neues Objekt neben dem erschöpften Array hinzugefügt wird, wächst seine Größe in den Fällen sowohl in ArrayList als auch in Vector. Der Unterschied besteht jedoch darin, dass in ArrayList die Größe angegeben wird wird um 50% des aktuellen Arrays erhöht, während das Array in Vector verdoppelt wird, wenn der Inkrementwert nicht angegeben ist.
  4. Vector verwendet die Aufzählung sowie den Iterator zum Durchlaufen eines Arrays, während eine ArrayList den Iterator nur zum Durchlaufen eines Arrays verwendet.
  5. Da ArrayList nicht synchronisiert ist und viele Threads gleichzeitig damit arbeiten können, ist seine Leistung besser als die von Vector, auf der jeweils nur ein Thread ausgeführt werden kann.

Ähnlichkeiten:

  1. ArrayList und Vector sind beide im Paket java.util definiert.
  2. ArrayList und Vector erweitern beide die Klasse AbsractList.
  3. ArrayList und Vector implementieren die List-Schnittstelle.
  4. ArrayList und Vectors werden beide verwendet, um ein dynamisches Array zu erstellen, das nach Bedarf wächst.
  5. ArrayList und Vector enthalten beide Objektreferenzen.

Fazit:

Abschließend möchte ich sagen, dass die Verwendung von ArrayList besser ist als die Verwendung von Vector, da sie schneller und besser funktioniert.

Top