Einführung
In Java können wir eine Liste mit einer Vielzahl von Ansätzen in einer einzigen Codezeile initialisieren. In diesem Lab werden wir verschiedene Methoden lernen, um Listen in Java auf eine präzise Weise zu initialisieren.
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
In Java können wir eine Liste mit einer Vielzahl von Ansätzen in einer einzigen Codezeile initialisieren. In diesem Lab werden wir verschiedene Methoden lernen, um Listen in Java auf eine präzise Weise zu initialisieren.
Arrays.asList()
-MethodeWir können eine Liste mithilfe eines Arrays erstellen, indem wir die asList()
-Methode verwenden. Diese Methode nimmt die Elemente direkt als Parameter und gibt eine Liste fester Größe zurück. Wird versucht, ein Element hinzuzufügen, wird eine UnsupportedOperationException
geworfen.
import java.util.Arrays;
import java.util.List;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = Arrays.asList("red", "blue", "green");
System.out.print("Colors List : " + colorsList); // Ausgabe : [red, blue, green]
}
}
Um den Code auszuführen, öffnen Sie eine Befehlszeile, navigieren Sie zum Projektverzeichnis und führen Sie die folgenden Befehle aus:
javac ListInitializationDemo.java
java ListInitializationDemo
Mit Java Streams kann eine Liste für die Streamelemente mithilfe der collect()
-Methode erstellt werden.
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = Stream.of("red", "blue", "green")
.collect(Collectors.toList());
System.out.print("Colors List : " + colorsList); // Ausgabe : [red, blue, green]
}
}
Um den Code auszuführen, öffnen Sie eine Befehlszeile, navigieren Sie zum Projektverzeichnis und führen Sie die folgenden Befehle aus:
javac ListInitializationDemo.java
java ListInitializationDemo
List.of()
-MethodeJava 9 bietet eine überladene List.of()
-Methode für sowohl可变 als auch unveränderliche Listen.
import java.util.List;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = List.of("red", "blue", "green");
System.out.print("Colors List : " + colorsList); // Ausgabe : [red, blue, green]
}
}
Um den Code auszuführen, öffnen Sie eine Befehlszeile, navigieren Sie zum Projektverzeichnis und führen Sie die folgenden Befehle aus:
javac ListInitializationDemo.java
java ListInitializationDemo
注:“可变”这里原文mutable翻译得不太准确,更准确的是“可变的、可修改的” ,但按照要求尽量保持原文或常见翻译,所以这里保留了“可变” 。 建议在实际使用中根据具体语境调整表述,比如“可变的List” 。
Die Doppelklammer-Initialisierung kann verwendet werden, um eine anonyme innere Klasse zu verwenden, um eine Liste zu initialisieren.
import java.util.List;
import java.util.ArrayList;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = new ArrayList<String>() {
{
add("red");
add("blue");
add("green");
}
};
System.out.print("Colors List : " + colorsList); // Ausgabe : [red,blue,green]
}
}
Um den Code auszuführen, öffnen Sie eine Befehlszeile, navigieren Sie zum Projektverzeichnis und führen Sie die folgenden Befehle aus:
javac ListInitializationDemo.java
java ListInitializationDemo
Apache Commons Collections bietet die unmodifiableList()
-Methode, die eine unveränderliche Ansicht der angegebenen Liste zurückgibt.
import java.util.List;
import org.apache.commons.collections4.ListUtils;
import java.util.Arrays;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = ListUtils.unmodifiableList(
Arrays.asList("red", "blue", "green")
);
System.out.print("Colors List : " + colorsList); // Ausgabe : [red,blue,green]
}
}
Um den Code auszuführen, öffnen Sie das Terminal, wechseln Sie zum Projektverzeichnis und führen Sie die folgenden Befehle aus:
javac -cp commons-collections4-4.4.jar ListInitializationDemo.java
java -cp commons-collections4-4.4.jar:. ListInitializationDemo
Die Guava-Bibliothek bietet die newArrayList()
-Methode, die eine可变的 ArrayList
zurückgibt, die mit den Elementen initialisiert ist.
import java.util.List;
import com.google.common.collect.Lists;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = Lists.newArrayList("red", "blue", "green");
System.out.print("Colors List : " + colorsList); // Ausgabe : [red,blue,green]
}
}
Um den Code auszuführen, öffnen Sie das Terminal, wechseln Sie zum Projektverzeichnis und führen Sie die folgenden Befehle aus:
javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo
注:“可变的”对应原文“mutable” 。
Guava bietet auch die ImmutableList
-Klasse, die eine unveränderliche Liste zurückgibt.
import java.util.List;
import com.google.common.collect.ImmutableList;
public class ListInitializationDemo {
public static void main(String[] args) {
List<String> colorsList = ImmutableList.of("red", "blue", "green");
System.out.print("Colors List : " + colorsList); // Ausgabe : [red,blue,green]
}
}
Um den Code auszuführen, öffnen Sie das Terminal, wechseln Sie zum Projektverzeichnis und führen Sie die folgenden Befehle aus:
javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo
In Java gibt es zahlreiche Möglichkeiten, eine Liste in einer einzigen Codezeile zu initialisieren. Wir haben gesehen, wie man Java 8 Streams verwendet, um eine Liste zu erstellen, die Verwendung der Arrays.asList()
-Methode und die List.of()
-Methode für Java-Versionen ab 9. Wir haben auch die Doppelklammer-Initialisierung und ein Beispiel dafür gesehen, wie externe Java-Bibliotheken wie Apache Commons Collections und Guava verwendet werden können.