Java Collections emptyList() 方法

2025年3月21日 | 阅读 4 分钟

Java Collections 类的 emptyList() 方法用于获取一个不包含任何元素的 List。这些空列表本质上是不可变的。

Java 中的 Collections.emptyList() 方法,它是 java.util.Collections 类的一部分,返回一个不可变的空 List。这意味着列表在创建后不能被修改,确保它在其生命周期内保持为空。

emptyList() 的主要用例是当你需要从方法返回一个列表或将一个空列表分配给一个变量,但又想确保列表不会被意外修改时。通过使用一个不可变的空列表,你可以保证列表将保持为空且不变。

语法

以下是 emptyList() 方法的声明

参数

该方法不接受任何参数。

返回值

emptyList() 方法返回一个空的不可变列表。

异常

不适用

兼容版本

Java 1.5 及以上版本

示例 1

CollectionsEmptyListExample1.java

输出

Empty list: []

emptyList() 的一个重要特性是,它每次调用时都返回同一个空列表实例。这意味着如果你多次调用 emptyList(),你将始终获得同一个列表对象。这种行为有助于节省内存,因为你的程序只需要一个空列表的实例。

由于返回的列表是不可变的,尝试使用 add()remove() 等方法修改它将导致 UnsupportedOperationException。这确保了空列表保持为空且不可更改,进一步保证了其不可变性。

示例 2

CollectionsEmptyListExample2.java

输出

Created empty immutable list: []
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 myPackage.CollectionsEmptyListExample1.main(CollectionsEmptyListExample1.java:9)

示例 3

CollectionsEmptyListExample3.java

输出

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 myPackage.CollectionsEmptyListExample3.main(CollectionsEmptyListExample3.java:8)

让我们通过几个 Java 示例程序来详细了解 Java Collections emptyList() 方法。

示例 1

文件名: EmptyListExample.java

输出

An immutable empty list has been created: []
Failed to modify the empty list: null
Is the empty list still empty? true
Are both empty lists the same instance? true
Failed to modify the second empty list: null
Is the second empty list still empty? true
Second empty list after attempted modifications: []

总而言之,Collections.emptyList() 方法是获取 Java 中不可变空列表的便捷方法,适用于需要一个不可修改的空列表的场景。