Unterschied zwischen Arrayliste und Vektor

Anonim

Arraylist vs Vector

nicht kennen. Eine Arrayliste kann als dynamisches Array betrachtet werden, Größe. Aus diesem Grund muss der Programmierer die Größe der Arrayliste nicht kennen, wenn er sie definiert. Vektor kann auch als ein Array angesehen werden, das in Größe zunehmen kann. Vektoren können leicht zugewiesen werden und können verwendet werden, wenn die erforderliche Größe des Speichers bis zur Laufzeit nicht bekannt ist.

Was ist eine Arrayliste?

Eine Arrayliste kann als dynamisches Array betrachtet werden, das in Größe zunehmen kann. Daher sind Array-Listen ideal, um in Situationen verwendet zu werden, in denen Sie die Größe der zum Zeitpunkt der Deklaration erforderlichen Elemente nicht kennen. In Java können Array-Listen nur Objekte enthalten, sie können primitive Typen nicht direkt halten (Sie können die primitiven Typen in ein Objekt einfügen oder die Wrapper-Klassen der primitiven Typen verwenden). Im Allgemeinen sind Array-Listen mit Methoden zum Einfügen, Löschen und Suchen versehen. Die Zeitkomplexität beim Zugriff auf ein Element ist o (1), während das Einfügen und Löschen eine Zeitkomplexität von o (n) hat. In Java können Array-Listen mit Foreach-Schleifen, Iteratoren oder einfach mit den Indizes durchlaufen werden. In Java wurden Array-Listen aus Version 1. 2 eingeführt und es ist Teil des Java Collections Frameworks.

Was ist ein Vektor?

Vector ist auch ein Array, das in Größe zunehmen kann. Vektoren können leicht zugewiesen werden und können verwendet werden, wenn die erforderliche Größe des Speichers bis zur Laufzeit nicht bekannt ist. Vektoren können auch nur Objekte enthalten und können keine primitiven Typen enthalten. Vektoren sind synchronisiert, können daher in Multithread-Umgebungen sicher verwendet werden. Vektoren werden mit Methoden zum Hinzufügen von Objekten, Löschen von Objekten und Suchobjekten bereitgestellt. Ähnlich der Arrayliste in Java können Vektoren mit Foreach-Schleifen, Iteratoren oder einfach mit den Indizes durchlaufen werden. Wenn es um Java geht, sind Vektoren seit der ersten Version von Java enthalten.

Was ist der Unterschied zwischen Arraylist und Vector?

Obwohl sowohl die Array-Listen als auch die Vektoren dynamischen Arrays sehr ähnlich sind, die in der Größe wachsen können, haben sie einige wichtige Unterschiede. Der Hauptunterschied zwischen Arraylisten und Vektoren besteht darin, dass die Vektoren synchronisiert sind, während Arraylisten unsynchronisiert sind. Daher ist die Verwendung von Array-Listen in Multithread-Umgebungen nicht geeignet, während Vektoren in Multithread-Umgebungen sicher verwendet werden können (da sie Thread-sicher sind). Die Synchronisation in Vektoren würde jedoch zu einer Leistungsminderung führen. Daher wäre es keine gute Idee, Vektoren in einer einzigen Thread-Umgebung zu verwenden. Intern verwenden Arrays und Vektoren Arrays, um Objekte zu halten. Wenn der aktuelle Speicherplatz nicht ausreicht, verdoppeln Vektoren die Größe seines internen Arrays, während Array-Listen die Größe seines internen Arrays um 50% erhöhen.Wenn jedoch sowohl die Array-Listen als auch Vektoren verwendet werden, indem eine geeignete Anfangskapazität bereitgestellt wird, kann eine unnötige Größenänderung der internen Anordnung vermieden werden. In einer Situation, in der die Wachstumsrate von Daten bekannt ist, wäre die Verwendung von Vektoren geeigneter, da der inkrementelle Wert von Vektoren definiert werden könnte.