Unterschied zwischen ArrayList und Vector in Java
Inhalt
ArrayList und Vector sind die Klassen in der Collection Framework-Hierarchie. ArrayList und Vector werden beide verwendet, um ein dynamisches Array von Objekten zu erstellen, dessen Größe bei Bedarf erweitert werden kann. Es gibt zwei grundlegende Unterschiede zwischen ArrayList und Vector: Vector gehört zu Legacy-Klassen, die später überarbeitet wurden, um die Auflistungsklassen zu unterstützen, wohingegen eine ArrayList eine Standardauflistungsklasse ist. Ein weiterer wichtiger Unterschied ist, dass ArrayList nicht synchronisiert ist. Vektor ist synchronisiert.
Lassen Sie uns einige andere Unterschiede mit Hilfe der unten gezeigten Vergleichstabelle untersuchen.
- Vergleichstabelle
- Definition
- Hauptunterschiede
- Ähnlichkeiten
- Fazit
Vergleichstabelle
Grundlage für den Vergleich | Anordnungsliste | Vektor |
---|---|---|
Basic | Die ArrayList-Klasse ist nicht synchronisiert. | Vektorklasse ist synchronisiert. |
Legacy-Klasse | ArrayList ist eine Standard-Collection-Klasse. | Vector ist eine Legacy-Klasse, die überarbeitet wurde, um die Sammlungsklasse zu unterstützen. |
Klassenerklärung | Klasse ArrayList | Klasse Vektor |
Neuzuteilung | Wenn nicht angegeben, wird eine ArrayList um die Hälfte ihrer Größe erhöht. | Wenn nicht angegeben, wird ein Vektor inkrementiert, um seine Größe zu verdoppeln. |
Performance | Da ArrayList nicht synchronisiert ist, arbeitet es schneller als Vector. | Da Vector synchronisiert ist, arbeitet es langsamer als ArrayList. |
Aufzählung / Iterator | ArrayList verwendet die Iterator-Schnittstelle, um die in ArrayList gespeicherten Objekte zu durchlaufen. | Vector verwendet die Enumeration- und die Iterator-Schnittstelle, um die in Vectors gespeicherten Objekte zu durchlaufen. |
Definition von ArrayList
ArrayList gehört zur Liste der Standardauflistungsklassen. Die Klasse ArrayList ist in der definiert java.util Paket, es erweitert die AbstractList Klasse, die auch eine Standardauflistungsklasse ist und auch implementiert wird Liste, eine in Collection Interfaces definierte Schnittstelle. In Java hat ein Standard-Array immer eine feste Länge. Das heißt einmal geschaffen; es wächst oder schrumpft nicht dynamisch. Sie sollten also die Länge des verwendeten Arrays kennen. Manchmal kann es jedoch vorkommen, dass die erforderliche Länge zur Laufzeit angezeigt wird, um diese Situation zu bewältigen, die von Java mit ArrayList eingeführt wurde.
Die ArrayList-Klasse wird zum dynamischen Erstellen eines Arrays verwendet, das die Verweise auf die Objekte enthält. Dieses Array kann bei Bedarf an Größe zunehmen. Die Klassendeklaration lautet wie folgt:
Klasse ArrayList Hier gibt E den Objekttyp an, den ein Array enthalten soll. Das erstellte Array hat eine variable Länge und wird vergrößert oder verkleinert, wenn Objekte zur Liste hinzugefügt oder daraus entfernt werden. Die ArrayList ist nicht synchronisiert, dh es können mehrere Threads gleichzeitig auf dem Array ausgeführt werden. Wenn beispielsweise ein Thread einen Objektverweis zum Array hinzufügt und ein anderer Thread gleichzeitig einen Objektverweis aus demselben Array entfernt. Die Erstellung eines dynamischen Arrays mit der ArrayList-Klasse: Anordnungsliste Im obigen Code können Sie das sehen; Ich habe ein Array von Objekten vom Typ String erstellt. Ich habe dem Array S1 einige Objekte mit der Methode add () hinzugefügt und später einige Objekte mit der Methode remove () gelöscht. Wenn Sie die Anfangsgröße des Arrays nicht angeben, können Sie feststellen, dass es eine Länge von "0" hat. Wie Sie sehen, vergrößert und verkleinert sich das Array, wenn Sie die Elemente hinzufügen und löschen. Vector ist eine Legacy-Klasse, die überarbeitet wurde, um die Auflistungsklasse in der Collection Framework-Hierarchie zu unterstützen. Die Vektorklasse wird auch in definiert java.util Paket, erweitert um AbstractList Klasse und von der implementiert Liste Schnittstelle. 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. Wird das Inkrement nicht angegeben, wird die Größe verdoppelt. Lassen Sie uns die Erstellung eines Arrays mit Vector verstehen. Vektor Im obigen Code können Sie sehen, dass ich die Größe und den Inkrement-Wert im Konstruktor von Vector besonders erwähnt habe, während ich das Array von String-Objekten deklarierte. Daher können Sie beobachten, dass das Array am Ende der Begrenzung um den Wert inkrementiert wird, der dem Konstruktor bei der Deklaration zur Verfügung gestellt wird. Abschließend möchte ich sagen, dass die Verwendung von ArrayList besser ist als die Verwendung von Vector, da sie immer schneller und besser funktioniert.Definition von Vektor
Ähnlichkeiten:
Fazit: