Utilisation de ArrayList en Java
ArrayList ist ein dynamisches Array, das die Schnittstelle
List implementiert. Der Benutzer dieser Schnittstelle hat die volle Kontrolle über die eingefügten Elemente und greift auf sie nach Position zu und sucht nach den Elementen in der Liste.
ArrayList implementiert alle Methoden von List, mehr noch, die Klasse hat ihre eigenen Methoden wie die Manipulation der Größe des Arrays, das zum Speichern der Liste verwendet wird. Diese Klasse ist äquivalent zu
Vector.
Arraylist verwendet ein Array, das Daten speichert, dieses Array hat eine Funktion, die sich jedes Mal automatisch anpasst, wenn ein Element eingefügt wird. Es gibt eine ensureCapacity-Methode, die die Kapazität der ArrayList erhöht, bevor eine große Anzahl von Elementen hinzugefügt wird, um die Größe sicherzustellen.
Auf die Liste wird gleichzeitig von mehreren Threads zugegriffen. Dies kann zu Problemen führen, wenn es um eine Änderung, ein Einfügen oder Löschen geht, da ein anderer Thread auf die laufende Liste zugreift und deren Größe aktualisiert. Die Lösung besteht darin, Prozesse mit der Collections.synchronizedList.
Liste Liste = Collections.synchronizedList(new ArrayList(...)); Um die Liste mit der Iterator- oder listIterator-Klasse zu durchsuchen, aber wenn die Liste geändert wurde: löschen, einfügen... Nach dem Erstellen des Iterators löst dieser eine Ausnahme aus
ConcurrentModificationException. Die Lösung besteht darin, einen gegenseitigen Ausschluss zu erstellen, dessen Zweck es ist, zu verhindern, dass andere Threads nach dem Erstellen des Iterators und während des Lesens darauf zugreifen.
Constructors
ArrayList hat drei Konstruktoren:
-
ArrayList(): Erstellt eine leere Liste mit einer Anfangsgröße von 10.
-
ArrayList(Collection extends E> c): Erstellt eine Liste aus einer Datensammlung und löst eine Ausnahme aus
NullPointerException wenn die Sammlung null ist.
-
ArrayList(int capacite): Erstellt eine Liste durch Festlegen der Anfangsgröße und löst eine IllegalArgumentException aus, wenn die Größe negativ ist.
Methods
1)
add(Object o): fügt ein Element am Ende hinzu.
list.add("Hallo");
2)
add(int indice, Object o): In der Mitte einfügen.
Es fügt die Zeichenfolge String an dritter Stelle ein.
3)
addAll(Collection c): Füge eine Sammlung hinzu.
ArrayList l1 = new ArrayList(); l1.add("Wort"); l1.add(12); l1.add(10.4f); liste.addAll(l1); |
Diese Methode fügt eine weitere Liste hinzu
l1 am Ende der Liste
list.
4)
addAll(int index, Collection c): Fügen Sie eine Sammlung in der Mitte hinzu.
Fügen Sie die l1-Liste an Position 3 ein. Andere Elemente mit einem Index größer als 3 werden versetzt.
5)
clear(): Lösche alle Elemente.
6)
contains(Object o): Element Membership.
boolean b = list.contains(o) |
Der Wert von b ist wahr, wenn das o-Objekt zur list.
8)
ensureCapacity(int capacite): erhöht die Kapazität, stellt sicher, dass es eine Reihe von Elementen mit seiner minimalen Kapazität aufnehmen kann.
liste.ensureCapacity(10); |
Dadurch wird die Kapazität um 10 Elemente erhöht.
9)
get(int index): gibt das Objekt an einer Position zurück.
system.out.println(list.get(2)); |
Diese Funktion zeigt das zweite in der Liste gespeicherte Objekt an.
10)
indexOf(Object o): Gibt den Index eines Elements zurück.
Die ganzzahlige Variable k erhält den Index des ersten Vorkommens des Objekts o4. Wir sagten, gut, nur das erste occurrence.
11)
isEmpty(): Gibt true zurück, wenn die Liste leer ist.
boolean b = list.isEmpty(); |
Wenn die Liste leer ist, ist b true.
12)
remove(Object o): Löscht das erste Vorkommen des o.
boolean b = list.remove("o4"); |
Gibt true zurück, wenn das Objekt existiert und erfolgreich gelöscht wurde.
13)
removeAll(Collection > c): Löscht Elemente, die in der Sammlung als Argumente übergeben werden.
AarrayList< String> lc = neue ArrayList< String> (); lc . add("o1"); lc . add("o2"); lc . add("o3"); liste.removeAll(lc); |
Sucht nach Elementen und löscht sie.
14)
removeRange( int start, int end): Entfernt Elemente, die sich zwischen den tiefgestellten Start- und Endindizes befinden.
Diese Prozedur löscht Elemente zwischen 3 und 8.
15)
retainsAll(Collection > c): behält nur die Elemente bei, die sich in der Sammlung befinden c.
16)
set(int index, Objekt o): ändert das Objekt an einer bestimmten Position.
Das Objekt an Position 3 wurde durch o5.
17) ersetzt
size(): gibt die Anzahl der Elemente zurück.
18)
subList(int start, int end): gibt das Fragment zwischen Anfang und Ende zurück.
19)
toArray(): gibt ein Array einer Dimension zurück.
String[] t = list.toArray(); |
Das t-Array enthält alle Objekte in der Liste. Diese Methode ist nützlich, wenn Sie eine Funktion haben, die nur Arrays akzeptiert, z. B..
20)
trimToSize(): Reduziert die Speicherkapazität auf das maximale Niveau.
So durchsuchen Sie eine ArrayList
Sie können eine ArrayList mit zwei Methoden durchsuchen:
1) Schleife for
for(int i = 0; i < list.size(); i++) system.out.println(list.get(i)); oder zum Beispiel, wenn wir den Typ: for(Integer number: list) system.out.println(Zahl); |
2) Iterator + While
Iterator itr = list.iterator(); while(itr.hasNext()) system.out.println(itr.next()); |
Example
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
//Erstellen einer ArrayList mit einer anfänglichen Kapazität von 4
ArrayList str = new ArrayList(4);
//Add
str.add("o1");
str.add("o2");
str.add("o3");
str.add("o4");
//Einige Methoden, die wir gesehen haben
System.out.println("index von "+"o2: "+str.indexOf("o2"));
System.out.println("o3 existiert?" +str.enthält("o3"));
System.out.println("o2 erfolgreich entfernt: "+str.remove("o2"));
System.out.println("size: "+str.size());
System.out.println("[1, 3] : "+str.subList(1, 3));
//parcours
for(String s : str)
System.out.println(s);
str.clear();
System.out.println("Liste ist leer?" +str.isEmpty());
}
}
Referenzen:
javadoc: ArrayList