1. ArrayList
Klasse
Heute werden wir die ArrayList
Klasse erkunden. Dies ist die erste von mehreren Klassen, die als Sammlungen bekannt sind . In Java sind Sammlungen ein so umfassendes und nützliches Thema, dass ihnen eine ganze CodeGym-Suche gewidmet ist.
Um die Struktur von Sammlungen und alle ihre Nuancen vollständig zu verstehen, müssen Sie zunächst OOP, Schnittstellen, Vererbung, die Grundlagen des Multithreadings und vieles mehr erlernen.
Deshalb machen wir uns heute mit der einfachsten Art der Sammlung vertraut. Aber auf einer ausreichend tiefen Ebene, damit Sie verstehen, wie man es benutzt und wie es funktioniert. Dann lernen Sie die ArrayList
Sammlung kennen .
Die Hintergrundgeschichte
Ich beginne mit einem kleinen Hintergrund. Programmierern gefiel ein Aspekt von Arrays wirklich nicht: die Tatsache, dass ihre Größe nicht geändert werden kann. Was ist, wenn Sie drei weitere Elemente in einem Array speichern müssen, aber nur eine leere Zelle vorhanden ist?
Die einzige Lösung für die Platzbeschränkungen eines Arrays bestand darin, ein sehr großes Array zu erstellen, um alle Elemente unterzubringen, die Sie möglicherweise speichern müssen. Aber das war normalerweise eine Verschwendung von Erinnerung. Wenn ein Array normalerweise zwei oder drei Elemente enthielt, aber auch nur die geringste Chance bestand, dass 100 davon gespeichert werden müssten, musste ein Array mit einer Speicherkapazität von 100 erstellt werden.
Was haben sich Programmierer ausgedacht? Sie haben die ArrayList
Klasse geschrieben, die die gleiche Arbeit wie die Array
Klasse leistete, jedoch in der Größe veränderbar war.
ArrayList-Klasse
Der Name der ArrayList
Klasse setzt sich aus zwei Wörtern zusammen: Array + List. Array
ist ein Array und List
eine Liste.
Jedes ArrayList
Objekt enthält ein gewöhnliches Array von Elementen. Wenn Sie Elemente aus einem lesen ArrayList
, ruft das Objekt sie aus seinem internen Array ab. Wenn Sie Elemente schreiben, werden diese in das interne Array geschrieben.
Der ArrayList-Klasse fehlen alle Nachteile, die Arrays haben. Es weiß, wie man:
- Speichern Sie Elemente eines bestimmten Typs
- Ändern Sie die Größe der Liste dynamisch
- Fügen Sie Elemente am Ende der Liste hinzu
- Fügen Sie Elemente am Anfang oder in der Mitte der Liste ein
- Entfernen Sie Elemente an einer beliebigen Stelle in der Liste
Weitere Einzelheiten finden Sie unten:
ArrayList
2. Ein Objekt erstellen
Um ein ArrayList
Objekt zu erstellen, müssen Sie Code wie diesen schreiben:
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
Dabei ArrayList
handelt es sich um den Sammlungstyp/die Sammlungsklasse, TypeParameter
um den Typ der in der ArrayList
Sammlung gespeicherten Elemente und name
um den Namen einer ArrayList<TypeParameter>
Variablen.
Die name
Variable hat einen generischen Typ. Es besteht aus zwei Typen: Zuerst wird der Typ der Sammlung angegeben, und dann werden spitze Klammern verwendet, um den Typ der in der Sammlung gespeicherten Elemente anzugeben.
Beispiele:
Code | Beschreibung |
---|---|
|
Liste von ganzen Zahlen |
|
Liste der Zeichenfolgen |
|
Liste reeller Zahlen |
Im Gegensatz zu Arrays können Sammlungen keine primitiven Typen speichern, sondern nur Referenztypen . Wenn Sie also eine Sammlung von int
s benötigen, verwenden Sie Integer
stattdessen die Wrapper-Klasse.
3. Operationen mit einemArrayList
Die Länge der neu erstellten Liste beträgt zunächst Null, da sie 0 Elemente enthält. Wenn Sie der Liste ein Element hinzufügen, erhöht sich seine Länge um 1. Wenn Sie das hinzugefügte Element entfernen, verringert sich die Länge wieder auf Null.
In der folgenden Tabelle erfahren Sie mehr über die Methoden des ArrayList
Kurses:
Methoden | Beschreibung |
---|---|
|
Fügt das übergebene Element zur Liste hinzu |
|
Fügt ein Element an einer bestimmten Stelle in der Liste hinzu. |
|
Gibt das Element zurück, dessen Index istindex |
|
Weist value dem Element zu, dessen Index istindex |
|
Entfernt das Element, dessen Index ist index . Gibt das entfernte Element zurück. |
|
Entfernt das Element, das Sie an die Methode übergeben. Wenn es mehr als ein solches Element gibt, wird das erste entfernt. |
|
Löscht die Liste, dh entfernt alle Elemente aus der Liste. |
|
Prüft, ob die Liste enthält value . |
|
Prüft, ob die Liste leer ist oder nicht. Mit anderen Worten, ob die Länge der Liste Null ist. |
|
Gibt die Größe der Liste zurück, also die Anzahl der Elemente in der Liste. |
|
Gibt ein Array zurück, das die Elemente der Liste enthält. Sie müssen das Array an die Methode übergeben. |
Mit diesen Methoden können Sie mit der Liste fast alles tun, was Sie möchten: Elemente austauschen, Elemente hinzufügen und Elemente entfernen. Sie können die Liste mit einem einzigen Befehl löschen oder die Liste sogar in ein Array konvertieren.
4. Vergleich von ArrayList
undArray
ArrayList
Ich glaube nicht, dass wir um den Vergleich und ein Array herumkommen .
Es gibt nur vier Aktionen, die Sie mit Arrays ausführen können:
- Erstellen Sie ein Array
- Holen Sie sich ein Element nach Index
- Legen Sie ein Element nach Index fest
- Ermitteln Sie die Länge des Arrays
Hier sind diese Operationen, wie sie auf ein Array und ein Array angewendet werden ArrayList
:
Array | Anordnungsliste |
---|---|
|
|
|
|
|
|
|
|
Vergleichen wir die ArrayList
Funktionsweise eines Arrays mit der eines Arrays. Lassen Sie uns zum Beispiel diese Aufgabe implementieren: „Lesen Sie 10 Zeichenfolgen von der Tastatur und zeigen Sie sie in umgekehrter Reihenfolge auf dem Bildschirm an.“
Verwenden von Array | Verwenden von ArrayList |
---|---|
|
|
Die Analogie ist klar. Bei Arrays ist alles irgendwie kürzer und übersichtlicher. Aber ArrayList
es ist auch nicht schwierig: Um ein Element zu erhalten, verwenden wir die get()
Methode; um ein Element zu ändern, die set()
Methode; um die Länge der Liste zu erhalten, die size()
Methode.
Warum nutzen Programmierer die ArrayList
Klasse?
Der springende Punkt sind natürlich alle anderen Methoden, die normale Arrays nicht haben:
- Fügen Sie der Liste ein Element hinzu
- Fügen Sie ein Element in die Mitte der Liste ein
- Suchen Sie ein Element in der Liste
- Entfernen eines Elements aus einer Liste