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.
list.add(3, "e"); |
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); |
4) addAll(int index, Collection c): Fügen Sie eine Sammlung in der Mitte hinzu.
list.addAll(3, l1); |
5) clear(): Lösche alle Elemente.
6) contains(Object o): Element Membership.
boolean b = list.contains(o) |
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); |
9) get(int index): gibt das Objekt an einer Position zurück.
system.out.println(list.get(2)); |
10) indexOf(Object o): Gibt den Index eines Elements zurück.
int k = indexOf("o4"); |
11) isEmpty(): Gibt true zurück, wenn die Liste leer ist.
boolean b = list.isEmpty(); |
12) remove(Object o): Löscht das erste Vorkommen des o.
boolean b = list.remove("o4"); |
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); |
14) removeRange( int start, int end): Entfernt Elemente, die sich zwischen den tiefgestellten Start- und Endindizes befinden.
liste.removeRange(3,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.
list.set(3, "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(); |
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;Referenzen:
public class Test {
public static void main(String[] args) {
//Erstellen einer ArrayList mit einer anfänglichen Kapazität von 4
ArrayListstr = 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());
}
}
javadoc: ArrayList