Was ist der unterschied zwischen einer hashmap und 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.

Was ist der Unterschied zwischen Array und ArrayList?

Zwischen einem Array und einer ArrayList besteht ein entscheidender Unterschied: In einem Array T[] existiert für jeden Elementtyp T ein Array-Typ T[] . ArrayList hingegen ist eine Bibliotheksklasse des Paketes java. util , die Elemente vom Typ Object speichert.

Was versteht man unter einer ArrayList?

ArrayList ist eine Bibliotheksklasse aus dem Paket java. util. * und muss importiert werden. ArrayList und LinkedList sind im Wesentlichen gleich; die ArrayList ist schneller bei Zugriff auf einzelne Elemente, die LinkedList ist schneller bei Operationen wie löschen, hinzufügen.

Was macht eine Hashmap?

Eine Hashmap ist eine Datentabelle mit einer speziellen Indexstruktur, die ein schnelles Auffinden von Datenobjekten erlaubt. Die Position eines Datenobjekts ist über eine Hashfunktion definiert. In der Hashmap sind die Daten als Schlüssel-Wert-Paare gespeichert. Über den Schlüssel sind die Werte wieder abrufbar.

Wann Hashmap verwenden?

Oracle empfiehlt die Verwendung von Hashmap , die jedoch im Gegensatz zur Hashtable nicht synchronisiert ist. Beide speichern Schlüssel-Wert-Paare, deren Schlüssel immer eindeutig sind. Beim Setzen eines neuen Wertes mit einem vorhandenen Schlüssel wird dessen Wert überschrieben.