Arrays gegen Arraylisten
Arrays sind die am häufigsten verwendete Datenstruktur, um eine Sammlung von Elementen zu speichern. Die meisten Programmiersprachen bieten Methoden, um Arrays und Zugriff auf Elemente in den Arrays zu deklarieren. 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 sie sie definiert.
Was sind Arrays?
In Abbildung 1 ist ein Stück Code angezeigt, das normalerweise verwendet wird, um ein Array zu deklarieren und Werte zuzuweisen. Abbildung 2 zeigt, wie ein Array im Speicher aussehen würde.
int Werte [5]; Werte [0] = 100; Werte [1] = 101; Werte [2] = 102; Werte [3] = 103; Werte [4] = 104; |
Abbildung 1: Code zum Deklarieren und Zuweisen von Werten an ein Array
100 | 101 | 102 | 103 | 104 |
Index: 0 | 1 | 2 | 3 | 4 |
Abbildung 2: Array im Speicher gespeichert
Oben Code definiert ein Array, mit dem 5 Ganzzahlen gespeichert werden können und auf sie werden mit den Indizes 0 bis 4 zugegriffen. Eine wichtige Eigenschaft eines Arrays ist, dass das gesamte Array als einzelner Speicherblock zugewiesen wird und jedes Element seinen eigenen Speicherplatz im Array erhält. Sobald ein Array definiert ist, ist seine Größe festgelegt. Wenn Sie sich also nicht sicher sind, wie groß das Array zur Kompilierungszeit ist, müssten Sie ein ausreichend großes Array definieren, um sich auf der sicheren Seite zu befinden. Aber meistens werden wir tatsächlich weniger Elemente verwenden, als wir zugewiesen haben. Es wird also tatsächlich eine beträchtliche Menge an Speicher verschwendet. Andererseits würde das Programm zum Absturz gebracht, wenn das „Groß genug Array“ nicht wirklich groß genug ist.
Was sind Arraylisten??
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.
Was ist der Unterschied zwischen Arrays und Arraylisten
Obwohl die Arrays und Arraylisten in dem Sinne ähnlich sind. Die Größe des Arrays muss angegeben werden, wenn ein Array definiert ist, aber Sie können eine Arraylist definieren, ohne die tatsächliche Größe zu kennen. Sie können nach der Definition Elemente zu einer ArrayList hinzufügen, und dies ist bei Arrays nicht möglich. In Java können Arraylisten jedoch keine primitiven Typen halten, aber Arrays können verwendet werden, um primitive Typen zu halten. Wenn Sie jedoch eine Datenstruktur benötigen, die ihre Größe variieren kann, wäre ArrayList die beste Wahl.