Wie man eine neue Liste in Java erstellt
- Erstellen einer leeren neuen Liste in Java
- Erstellen einer nicht leeren neuen Liste in Java
- Erstellen einer nicht-leeren Liste fester Größe in Java
Dieses Tutorial behandelt Methoden zur Erstellung verschiedener Arten von Listen in Java.
List
in Java ist eine Schnittstelle und wird durch ArrayList
, LinkedList
, Vector
und Stack
implementiert. Sie stellt eine geordnete Sammlung von Objekten zur Verfügung. Der Benutzer hat genaue Kontrolle darüber, wo in der Liste jedes Element eingefügt wird. Der Benutzer kann auf Elemente über ihren ganzzahligen Index (Position in der Liste) zugreifen und nach Elementen in der Liste suchen. Darüber hinaus können in Listen auch doppelte Elemente gespeichert werden.
Erstellen einer leeren neuen Liste in Java
Da List
eine Schnittstelle ist, können wir ein List-Objekt nicht direkt erstellen. Wir können jedoch Objekte der Klassen erzeugen, die die Schnittstelle List
implementieren: ArrayList
, LinkedList
, Vector
und Stack
. Hier ist ein einfacher Weg:
List myArrayList = new ArrayList();
List myLinkedList = new LinkedList();
List myVector = new Vector();
List myStack = new Stack();
Diese Arten von Listen haben keinen bestimmten Datentyp und können jede Art von Objekten und Werten darin enthalten. Lassen Sie uns versuchen, diese in Java zu erstellen und einige Werte hinzuzufügen.
import java.util.*;
public class myClass {
public static void main(String args[]) {
// ArrayList
List myArrayList = new ArrayList();
myArrayList.add(1);
myArrayList.add(2);
myArrayList.add("three");
System.out.println("ArrayList: " + myArrayList);
// LinkedList
List myLinkedList = new LinkedList();
myLinkedList.add(4);
myLinkedList.add(5);
myLinkedList.add("six");
System.out.println("LinkedList: " + myLinkedList);
// Stack
List myStack = new Stack();
myStack.add(7);
myStack.add(8);
myStack.add("nine");
System.out.println("Stack: " + myStack);
}
}
Der obige Code wird ausgegeben:
ArrayList: [1, 2, three]
LinkedList: [4, 5, six]
Stack: [7, 8, nine]
Wir können sehen, dass wir int
- und String
-Werte ohne Fehler zu den Listen hinzugefügt haben.
Es ist möglich, den Datentyp so zu spezifizieren, dass nur Werte dieses bestimmten Typs gespeichert werden können. Versuchen wir ein anderes Beispiel.
import java.util.*;
public class myClass {
public static void main(String args[]) {
// ArrayList
List<Integer> myArrayList = new ArrayList<>();
myArrayList.add(1);
myArrayList.add(2);
myArrayList.add("three");
System.out.println("ArrayList: " + myArrayList);
}
}
Der obige Code führt zu folgendem Fehler.
> /myClass.java:9: error: incompatible types: String cannot be converted to Integer
> myArrayList.add("three");
Der Grund dafür ist, daß wir bei der Erstellung des ArrayList-Objekts den Datentyp Integer
angegeben haben; daher akzeptiert es keinen anderen Datentyp.
Erstellen einer nicht leeren neuen Liste in Java
Wir haben besprochen, wie man leere Listenobjekte erstellt und dann Objekte zur Liste hinzufügt. Sehen wir uns nun eine andere Möglichkeit an, eine Liste mit Objekten darin zu erstellen.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<String> list = new ArrayList<String>() {
{
add("a");
add("b");
}
};
System.out.println("ArrayList: " + list);
}
}
Der obige Code wird ausgegeben:
ArrayList: [a, b]
Erstellen einer nicht-leeren Liste fester Größe in Java
Wir können auch eine nicht leere Liste mit fester Größe erstellen. Wenn dies der Fall ist, werden Operationen wie add
, remove
nicht unterstützt.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<Integer> list = Arrays.asList(1, 2);
System.out.println("ArrayList: " + list);
}
}
Der obige Code wird ausgegeben:
ArrayList: [1, 2]
Mal sehen, was passiert, wenn wir versuchen, ein weiteres Element zu dieser Liste hinzuzufügen.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<Integer> list = Arrays.asList(1, 2);
list.add(3);
System.out.println("ArrayList: " + list);
}
}
Der obige Code gibt den folgenden Fehler aus, da er Operationen wie add
, remove
usw. nicht erlaubt:
> Exception in thread "main" java.lang.UnsupportedOperationException
> at java.base/java.util.AbstractList.add(AbstractList.java:153)
> at java.base/java.util.AbstractList.add(AbstractList.java:111)
> at myClass.main(myClass.java:6)
Sie können jedoch den Wert an jeder beliebigen Stelle in dieser Art von Liste ändern.
import java.util.*;
public class myClass {
public static void main(String args[]) {
List<Integer> list = Arrays.asList(1, 2);
System.out.println("Initial ArrayList: " + list);
list.set(1, 3);
System.out.println("Changed ArrayList: " + list);
}
}
Der obige Code gibt den folgenden Fehler aus:
Initial ArrayList: [1, 2]
Changed ArrayList: [1, 3]
Jetzt wissen wir, wie man verschiedene Arten von Listen in Java erstellt.