Unterschied Zwischen Arraylist Und Vektor

Unterschied Zwischen Arraylist Und Vektor
Unterschied Zwischen Arraylist Und Vektor

Video: Unterschied Zwischen Arraylist Und Vektor

Video: Unterschied Zwischen Arraylist Und Vektor
Video: ArrayList vs Vector Java собеседование 2024, Kann
Anonim

Arraylist gegen Vektor

Eine Arrayliste kann als dynamisches Array angesehen werden, dessen Größe zunehmen kann. Aus diesem Grund muss der Programmierer die Größe der Arrayliste nicht kennen, wenn er sie definiert. Vektor kann auch als Array angesehen werden, dessen Größe zunehmen kann. Vektoren können einfach zugeordnet und verwendet werden, wenn die erforderliche Größe des Speichers erst zur Laufzeit bekannt ist.

Was ist ein Arraylist?

Eine Arrayliste kann als dynamisches Array angesehen werden, dessen Größe zunehmen kann. Daher sind Arraylisten ideal für Situationen, in denen Sie die Größe der zum Zeitpunkt der Deklaration erforderlichen Elemente nicht kennen. In Java können Arraylisten nur Objekte enthalten, sie können keine primitiven Typen direkt enthalten (Sie können die primitiven Typen in ein Objekt einfügen oder die Wrapper-Klassen der primitiven Typen verwenden). Im Allgemeinen erhalten Arraylisten Methoden zum Einfügen, Löschen und Suchen. Die zeitliche Komplexität des Zugriffs auf ein Element beträgt o (1), während das Einfügen und Löschen eine zeitliche Komplexität von o (n) aufweist. In Java können Arraylisten mit foreach-Schleifen, Iteratoren oder einfach mit den Indizes durchlaufen werden. In Java wurden Arraylisten ab Version 1.2 eingeführt und es ist Teil des Java Collections Framework.

Was ist ein Vektor?

Vektor ist auch ein Array, dessen Größe zunehmen kann. Vektoren können einfach zugeordnet und verwendet werden, wenn die erforderliche Größe des Speichers erst zur Laufzeit bekannt ist. Vektoren können auch nur Objekte und keine primitiven Typen enthalten. Vektoren sind synchronisiert und können daher in Multithread-Umgebungen sicher verwendet werden. Vektoren werden mit Methoden zum Hinzufügen von Objekten, Löschen von Objekten und Suchen von Objekten bereitgestellt. Ähnlich wie bei Arraylist in Java können Vektoren mit foreach-Schleifen, Iteratoren oder einfach mit den Indizes durchlaufen werden. Wenn es um Java geht, sind seit der ersten Version von Java Vektoren enthalten.

Was ist der Unterschied zwischen Arraylist und Vector?

Obwohl sowohl die Arraylisten als auch die Vektoren dynamischen Arrays sehr ähnlich sind, deren Größe zunehmen kann, weisen sie einige wichtige Unterschiede auf. Der Hauptunterschied zwischen Arraylisten und Vektoren besteht darin, dass die Vektoren synchronisiert sind, während Arraylisten nicht synchronisiert sind. Daher ist die Verwendung von Arraylisten in Multithread-Umgebungen nicht geeignet, während Vektoren in Multithread-Umgebungen sicher verwendet werden können (da sie threadsicher sind). Die Synchronisation in Vektoren würde jedoch zu einer Verringerung der Leistung führen. Daher wäre es keine gute Idee, Vektoren in einer Umgebung mit einem einzigen Thread zu verwenden. Intern verwenden sowohl Arraylisten als auch Vektoren Arrays, um Objekte zu halten. Wenn der aktuelle Speicherplatz nicht ausreicht, verdoppeln Vektoren die Größe des internen Arrays, während Arraylisten die Größe des internen Arrays um 50% erhöhen. Wenn jedoch sowohl die Arraylisten als auch die Vektoren verwendet werden, kann durch Angabe einer geeigneten Anfangskapazität eine unnötige Größenänderung des internen Arrays vermieden werden. In einer Situation, in der die Wachstumsrate von Daten bekannt ist, wäre die Verwendung von Vektoren besser geeignet, da der inkrementelle Wert von Vektoren definiert werden könnte.

Empfohlen: