|-List: Die Elemente werden bestellt (steigen Sie aus, während sie gespeichert werden, und die Bestellung wird nicht durcheinander gebracht). Eckmarke 2) Aufgrund dieses Satzes hat das System Indizes,
|- ArrayList: Die zugrunde liegende Datenstruktur verwendet eine Array-Struktur (die Länge des Arrays ist 50% länger als die Variable) (die Funktion ist, dass die Abfrage sehr schnell ist, die Addition und Löschung langsam sind) Threads sind nicht synchronisiert
|- LinkedList: Die zugrunde liegende Datenstruktur ist eine verknüpfte Listenstruktur (die Eigenschaften sind langsamere Abfragen und schnellere Addition und Löschung)
|- Vektor: Die zugrunde liegende Schicht ist die Array-Datenstruktur-Thread-Synchronisation (die Arraylänge ist 100% durch Variable verlängert) (sowohl Abfragen als auch Ergänzungen und Löschungen sind sehr langsam und wurden durch ArrayList ersetzt)
LISTE: Eine eindeutige Methode.
Zunahme
Die Codekopie lautet wie folgt:
boolean add (int Index, E -Element)
Boolean Addall (Index, Sammlung)
Die Codekopie lautet wie folgt:
public static void list_add () {
ArrayList a1 = new ArrayList ();
a1.add ("java");
a1.add ("php"); // Elemente in der Listensammlung können wiederholt werden
a1.add (". net");
System.out.println ("Originalsammlung:"+a1);
A1.Add (1, "Flash");
a1.add (0, "ps");
System.out.println (A1);
ArrayList a2 = new ArrayList ();
a2.add ("javaScript");
a2.add ("3Dmax");
a2.add ("ibm");
a1.addall (0, a2);
System.out.println (A1);
}
Löschen Sie Elemente am angegebenen Ort
Die Codekopie lautet wie folgt:
boolean entfernen (int Index)
Die Codekopie lautet wie folgt:
public static void list_remove () {
ArrayList a1 = new ArrayList ();
a1.add ("javaScript");
a1.add ("Php");
a1.add ("flash");
System.out.println ("Originalsammlung:"+a1);
a1.remove (0);
System.out.println (A1);
}
Ändern Sie das Element des angegebenen Winkelsatzes (int -Index, E -Element) Das zurückgegebene Element wird modifiziert
Die Codekopie lautet wie folgt:
public static void list_set () {
ArrayList a1 = new ArrayList ();
a1.add ("javaScript");
a1.add ("Php");
a1.add (". net");
System.out.println ("Originalsammlung:"+a1);
a1.set (1, "falsh");
System.out.println (A1);
}
überprüfen
Die Codekopie lautet wie folgt:
GET (INT INDEX) gibt das Element an der angegebenen Position in der Liste zurück
Sublist (int vonIndex, int toIdex) gibt einige Elemente zwischen INDEX (einschließlich) und zu Index (ohne) in der Liste zurück.
Die Codekopie lautet wie folgt:
public static void list_get () {
ArrayList a1 = new ArrayList ();
a1.add ("java");
a1.add ("Php");
a1.add ("flash");
System.out.println (a1.get (0)); // Erhalten Sie das Element des angegebenen Winkelpunkts.
System.out.println (A1.Sublist (1, 3)); // Holen Sie sich das Element in einem bestimmten Teil der Sammlung, einschließlich des Kopfes, aber nicht des Schwanzes
}
LIST Collection-spezifische Iterator: Listiterator (ist eine Subinterspektion des Iterators)
Beachten:
Während der Iteration können Elemente in der Sammlung nicht über die Methode des Sammelobjekts betrieben werden
Weil eine Ausnahme von ConcurrentModificationException (gleichzeitige Ausnahme) auftritt
Daher können Sie beim Iterieren nur die Iterator -Methode verwenden, um Elemente zu erstellen
Da die Iteratormethode begrenzt ist, kann sie nur Elemente beurteilen, entfernen und löschen.
Wenn Sie andere Vorgänge wie das Hinzufügen, Ändern usw. möchten, müssen Sie die Untergrenze verwenden, Listiterator
Diese Schnittstelle kann nur über die Listiterator -Methode der Listensammlung erhalten werden
Die Codekopie lautet wie folgt:
öffentliche Klasse Listiteratordemo {
public static void main (String [] args) {
ArrayList a1 = new ArrayList ();
a1.add ("java01");
a1.add ("java02");
a1.add ("java03");
a1.add ("java04");
System.out.println ("Originalsammlung ist:"+a1);
/*Vorbereitung auf das Hinzufügen oder Löschen von Elementen während des Iterationsprozesses
Iterator it = al.Iderator ();
while (it.hasnext ()) {
Objekt obj = it.Next ();
if (obj.equals ("java02"))
//al.add("java008")// Die gleichzeitige Ausnahme tritt auf, da der Iterator die Sammlung betreibt und die Sammelmethode nicht mehr verwenden kann, um die Sammlung zu betreiben.
IT.Remove (); // Entfernen Sie die Java02 -Referenz aus der Sammlung
System.out.println ("obj:"+obj);
}
*/
// Nur Listiterator der Liste hat die Funktionen des Hinzufügens, Löschens, Änderns und Überprüfens, da nur die Liste den Index enthält
Listiterator li = a1.listiterator ();
while (li.hasnext ()) {
if (li.Next (). Equals ("Java02"))
//li.add("java009 ");
li.set ("java006");
}
}
}
Vektor: Die Aufzählung ist eine einzigartige Art des Abrufens im Vektor, der einem Iterator sehr ähnlich ist (tatsächlich sind Aufzählung und Iteration gleich) und durch einen Iterator ersetzt wurden.
Die Codekopie lautet wie folgt:
öffentliche Klasse Vectordemo {
public static void main (String [] args) {
Vektor v = neuer Vektor ();
v.Add ("java01");
v.Add ("Java02");
v.Add ("Java03");
v.Add ("Java04");
für (Aufzählung en = v.elements (); en.hasmoreElements ();) {
System.out.println (en.NextElement ());
}
}
}
LinkedList:
Besondere Methode:
Addfirst ();
GetFirst (); Wenn es in der Sammlung keine Elemente gibt, wird NoSuchelementException erscheinen
removeFirst () removelast (); Wenn es in der Sammlung keine Elemente gibt, wird NoSuchelementException erscheinen
Alternative Ansätze erscheinen in JDK1.6
OfferFirst ();
Peekfirst (); Wenn es in der Sammlung keine Elemente gibt, wird Null zurückgegeben
Pollfirst (); Wenn es in der Sammlung keine Elemente gibt, wird Null zurückgegeben
Die Codekopie lautet wie folgt:
öffentliche Klasse LinkedListDemo {
public static void main (String [] args) {
LinkedList link = new linkedList ();
link.add ("java01");
link.add ("java02");
link.add ("java03");
link.add ("java04");
while (! link.isempty ()) {
System.out.println ((link.removelast ()));
}
}
}