So verwenden Sie eine Java ArrayList

So verwenden Sie eine Java ArrayList / Programmierung

Ein Java Anordnungsliste ist ein allgemein anpassbares Array. Es bietet die meisten Einrichtungen, die normalerweise von Arrays in anderen Sprachen erwartet werden. Dazu gehören: Zugriff auf Elemente über einen Index, Hinzufügen, Entfernen und Aktualisieren von Elementen, dynamische Größenanpassung, Iterieren der Elemente usw. Die meisten dieser Vorgänge wurden speziell für allgemeine Zwecke angepasst.

Es gibt einige andere Arten von “Arrays” (Klassen, die das implementieren Liste Schnittstelle, um technisch zu sein), die für besondere Zwecke bestimmt sind. Diese schließen ein:

  • LinkedList unterstützt das schnelle Einfügen und Entfernen bei Zwischenindizes.
  • Vektor ist ähnlich einem Anordnungsliste ist aber synchronisiert und eignet sich anstelle eines Anordnungsliste für Multithread-Anwendungen.
  • Stapel unterstützt Vorgänge zum Nachahmen einer Last-In-First-Out-Liste. Es reicht das Vektor und ist somit synchronisiert.

Diese speziellen Klassen sind nicht Gegenstand dieses Artikels. Sie erfahren jedoch, wie Sie eine allgemeine Java-ArrayList einrichten und verwenden.

Erstellen einer ArrayList

Erstellen eines Anordnungsliste Ist einfach. Ein leeres Anordnungsliste kann mit dem Konstruktor no-arguments erstellt werden. Hier erstellen wir eine leere Arrayliste zum Halten von Strings.

Anordnungsliste alist = neue ArrayList(); 

Wenn Sie wissen, wie viele Elemente Ihre Array-Liste enthält, können Sie die Anfangskapazität angeben. Diese anfängliche Kapazität ist nur ein Hinweis auf die Speicherzuordnung. Die Arrayliste ist nicht darauf beschränkt, die angegebene Anzahl von Elementen zu halten. Wenn Sie die Anfangskapazität kennen und angeben, können Sie könnte eine leichte Verbesserung der Leistung erzielen.

Anordnungsliste alist = neue ArrayList(20); 

Füllen einer ArrayList

Elemente am Ende hinzufügen

Das Auffüllen einer Arrayliste ist ziemlich einfach. Verwenden Sie einfach die hinzufügen() Methode, um ein einzelnes Element am Ende der Arrayliste hinzuzufügen. Hier ist ein Beispiel:

Anordnungsliste alist = neue ArrayList(); Alist.add ("Apfel"); Alist.add ("Banane"); alist.add ("cantaloupe"); alist.add ("orange"); System.out.println (Alist); # druckt [Apfel, Banane, Kantalupe, Orange] 

Um herauszufinden, wie viele Elemente in der Arrayliste vorhanden sind, verwenden Sie die Methode Größe().

System.out.println ("Anzahl der Elemente in der Arrayliste:" + alist.size ()); Anzahl der Elemente in der Arrayliste: 4

Elemente zu einem angegebenen Index hinzufügen

Möchten Sie einen Artikel zu einem beliebigen Index hinzufügen? Geben Sie den Index als erstes Argument an und das Element wird an diesem Index hinzugefügt:

Alist.add (3, "Trauben"); System.out.println (Alist); # Drucke [Apfel, Banane, Kantalupe, Trauben, Orange] 

Eine Reihe von Elementen hinzufügen

Sie können auch Elemente aus einer beliebigen Sammlung in der Java Collections-Hierarchie hinzufügen. Ein Anordnungsliste ist ein bestimmter Typ namens Liste. Hier ist eine Möglichkeit, eine zu erstellen Liste aus einer Reihe von Gegenständen (mit Arrays.asList ()) und füge es einem hinzu Anordnungsliste.

Liste items = Arrays.asList ("Birne", "Kirsche"); alist.addAll (Elemente); System.out.println (Alist); # Drucke [Apfel, Banane, Kantalupe, Trauben, Orange, Birne, Kirsche] 

Natürlich können Sie hier einen Index als erstes Argument angeben, um die Elemente ab diesem Index hinzuzufügen.

Zugriff auf Elemente

Wenn die Elemente der Arrayliste hinzugefügt wurden, wie können wir wieder auf sie zugreifen??

Zugriff mit einem Index

Wenn Sie den Index des Artikels kennen, können Sie die erhalten() Methode, um das Element an diesem Index abzurufen.

String item = alist.get (2); System.out.println ("Element am Index 2 ist:" + Element); # druckt Artikel bei Index 2 lautet: cantaloupe 

Artikel finden

Was ist, wenn Sie den Index des Artikels nicht kennen? Sie können verwenden Index von() um zu überprüfen, ob das Element im Array vorhanden ist, und rufen Sie das Element mit dem zurückgegebenen Index ab.

System.out.println (Alist); int index = alist.indexOf ("orange"); if (index < 0 ) System.out.println("Item \"orange\" not found"); else System.out.println("Item \"orange\" found at index " + index); # prints [apple, banana, cantaloupe, grapes, orange, pear, cherry] Item "orange" found at index 4 

Was ist, wenn das Element nicht in der Arrayliste vorhanden ist? Das Index von() Die Methode gibt -1 zurück, wenn das Element nicht gefunden wurde.

index = alist.indexOf ("traube"); if (index < 0 ) System.out.println("Item \"grape\" not found"); else System.out.println("Item \"grape\" found at index " + index); # prints Item "grape" not found 

Iteration über eine ArrayList

Natürlich die häufigste Verwendung eines Anordnungsliste iteriert über die Elemente. Dies kann auf verschiedene Arten erreicht werden. Wir zeigen hier ein paar einfache.

Hier ist der einfachste Weg, eine Arrayliste zu durchlaufen und die Elemente für eine bestimmte Verarbeitung zu extrahieren.

for (String fruit: alist) System.out.println ("Obst gefunden" + Obst + "\" ");  # prints Obst gefunden "Apfel" Obst gefunden "Banane" Obst gefunden "Kantalupe" Obst gefunden "Trauben" Obst gefunden "Orange" Obst gefunden "Birne" Obst gefunden "Kirsche" 

Dieser Code verwendet die Java Enhanced For-Loop, die in Java 1.5 eingeführt wurde. Zuvor konnten Sie die Elemente mit einem Iterator durchlaufen. Bei Bedarf wird auch ein Iterator verwendet Löschen Elemente während des Iterationsprozesses, wie das Beispiel unten veranschaulicht. (Beachten Sie, dass wir eine Kopie der Arrayliste erstellen und an der Kopie arbeiten.)

Anordnungsliste blist = neue ArrayList(eine Liste); for (Iterator iter = blist.iterator (); iter.hasNext ();) String fruit = iter.next (); if (fruit.startsWith ("c")) iter.remove (); else System.out.println ("Keeping \" "+ fruit +" \ ""));  #Prints Halten "Apfel" Halten "Banane" Halten "Trauben" "Halten" Orange "halten" Birne " 

Elemente ersetzen

Sobald Elemente hinzugefügt wurden, müssen wir unerwünschte Elemente ersetzen. Das kann mit der einstellen() Methode mit einem Index.

Alist.set (5, "Ananas"); System.out.println (Alist); # Drucke [Apfel, Banane, Kantalupe, Trauben, Orange, Ananas, Kirsche] 

Elemente entfernen

Lassen Sie uns nun sehen, wie wir Elemente aus einer Arrayliste entfernen können. Wenn Sie den Index des Artikels kennen (vielleicht haben Sie verwendet) Index von() Wie oben beschrieben), können Sie die Löschen() Methode mit dem Index. Es gibt das entfernte Element zurück.

String fruit = alist.remove (2); System.out.println ("Entferntes Element bei 2:" + Frucht); # Druckt das entfernte Element um 2: Cantaloupe 

Sie können auch das Element zum Entfernen von angeben zuerst Vorkommen des Elements in der Liste. Die Methode kehrt zurück wahr wenn das Element gefunden und entfernt wurde.

Frucht = "Trauben"; System.out.println ("Remove" + fruit + "aus der Liste?" + Alist.remove (fruit)); # Prints Trauben aus der Liste entfernen? wahr 

Wie benutzt du die Anordnungsliste in Ihren Projekten und mit welchen besonderen Themen haben Sie konfrontiert? Bitte teilen Sie uns in den Kommentaren unten mit.

Erfahren Sie mehr über: Java.