ArrayList vs Vector
Eine ArrayList kann als dynamisches Array angesehen werden, das in der Größe wachsen kann. Aus diesem Grund muss der Programmierer die Größe der ArrayList nicht kennen, wenn er sie definiert. Vektor kann auch als ein Array angesehen werden, das an Größe wachsen 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 Arraylist?
Eine ArrayList kann als dynamisches Array angesehen werden, das in der Größe wachsen kann. Daher sind Arraylisten ideal, um in einer Situation verwendet zu werden, in der Sie die Größe der zum Zeitpunkt der Erklärung erforderlichen Elemente nicht kennen. In Java können Arraylisten nur Objekte halten, sie können keine primitiven Typen direkt halten (Sie können die primitiven Typen in ein Objekt einfügen oder die Wrapper -Klassen der primitiven Typen verwenden). Im Allgemeinen werden Arraylisten Methoden zur Durchführung von Insertion, Löschung und Suchen zur Verfügung gestellt. Die Zeitkomplexität des Zugriffs auf ein Element ist o (1), während Einfügung und Löschung eine zeitliche Komplexität von O (n) haben. In Java können Arraylisten mit Foreach -Schleifen, Iteratoren oder einfach mit den Indizes durchquert werden. In Java wurden Arraylisten aus Version 1 vorgestellt.2 Und es ist Teil des Java -Sammlungsrahmens.
Was ist ein Vektor?
Vektor ist auch ein Array, das an Größe wachsen 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 halten und keine primitiven Typen halten. Vektoren werden synchronisiert und können daher in multitHhread -Umgebungen sicher verwendet werden. Vektoren werden mit Methoden zur Verfügung gestellt, um Objekte hinzuzufügen, Objekte zu löschen und Objekte zu suchen. Ähnlich wie bei ArrayList in Java können Vektoren mit Foreach -Schleifen, Iteratoren oder einfach mit den Indizes durchquert werden. Wenn es um Java geht, sind seit der ersten Version von Java Vektoren aufgenommen.
Was ist der Unterschied zwischen ArrayList und Vector?
Obwohl sowohl die Arraylisten als auch die Vektoren dynamischen Arrays sehr ähnlich sind, die an 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 nicht synchronisiert sind. Daher sind die Verwendung von Arraylisten in Multithread -Umgebungen nicht geeignet, während Vektoren in Multithread -Umgebungen sicher verwendet werden können (da sie fadensicher sind). Die Synchronisation bei Vektoren würde jedoch zu einer Leistungsverringerung führen. Daher wäre es keine gute Idee, Vektoren in einer einzelnen Fadenumgebung zu verwenden. Innen verwenden sowohl Arraylisten als auch Vektoren Arrays, um Objekte zu halten. Wenn der aktuelle Raum nicht ausreicht, verdoppeln Vektoren die Größe seines internen Arrays, während Arraylisten die Größe seines internen Arrays um 50% erhöhen. Wenn Sie jedoch sowohl die Arraylisten als auch die Vektoren verwenden, können Sie durch eine geeignete anfängliche Kapazitä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 der Vektoren definiert werden könnte.