介绍
在 Java 中,我们可以使用多种方法在一行代码中初始化一个 List。在本实验中,我们将学习如何在 Java 中以简洁的方式初始化 List。
在 Java 中,我们可以使用多种方法在一行代码中初始化一个 List。在本实验中,我们将学习如何在 Java 中以简洁的方式初始化 List。
我们可以通过使用 asList()
方法从数组创建一个 List。该方法直接将元素作为参数,并返回一个固定大小的列表。如果尝试添加元素,则会抛出 UnsupportedOperationException
异常。
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); //输出 : [red, blue, green]
}
}
要运行代码,请打开命令提示符,导航到项目目录并运行以下命令:
javac ListInitializationDemo.java
java ListInitializationDemo
可以使用 Java Streams 通过 collect()
方法为流元素创建一个 List。
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); //输出 : [red, blue, green]
}
}
要运行代码,请打开命令提示符,导航到项目目录并运行以下命令:
javac ListInitializationDemo.java
java ListInitializationDemo
Java 9 提供了一个重载的 List.of()
方法,用于创建可变和不可变的 List。
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); //输出 : [red, blue, green]
}
}
要运行代码,请打开命令提示符,导航到项目目录并运行以下命令:
javac ListInitializationDemo.java
java ListInitializationDemo
双大括号初始化(Double Brace Initialization)可以通过匿名内部类来初始化一个 List。
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); //输出 : [red,blue,green]
}
}
要运行代码,请打开命令提示符,导航到项目目录并运行以下命令:
javac ListInitializationDemo.java
java ListInitializationDemo
Apache Commons Collections 提供了 unmodifiableList()
方法,该方法返回指定列表的不可修改视图。
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); //输出 : [red,blue,green]
}
}
要运行代码,请打开终端,进入项目目录并运行以下命令:
javac -cp commons-collections4-4.4.jar ListInitializationDemo.java
java -cp commons-collections4-4.4.jar:. ListInitializationDemo
Guava 库提供了 newArrayList()
方法,该方法返回一个用指定元素初始化的可变 ArrayList。
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); //输出 : [red,blue,green]
}
}
要运行代码,请打开终端,进入项目目录并运行以下命令:
javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo
Guava 还提供了 ImmutableList
类,该类返回一个不可变的 List。
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); //输出 : [red,blue,green]
}
}
要运行代码,请打开终端,进入项目目录并运行以下命令:
javac -cp guava-31.0.1-jre.jar ListInitializationDemo.java
java -cp guava-31.0.1-jre.jar:. ListInitializationDemo
在 Java 中,有许多方法可以用一行代码初始化一个 List。我们已经了解了如何使用 Java 8 Stream 创建 List、使用 Arrays.asList()
方法,以及 Java 9 之后版本中的 List.of()
方法。我们还介绍了双大括号初始化(Double Brace Initialization),并展示了如何使用外部 Java 库(如 Apache Commons Collections 和 Guava)的示例。