📅  最后修改于: 2023-12-03 15:32:02.437000             🧑  作者: Mango
在Java中,unmodifiableList()
是一个非常有用的方法,它可以使用来创建一个不可修改的列表。一旦创建了这个列表,就不能再添加、删除或修改其中的元素。
unmodifiableList()
方法是在Collections
类中定义的,以下是该方法的语法:
public static <T> List<T> unmodifiableList(List<? extends T> list)
该方法接收一个列表作为参数,并返回一个不可修改的列表。示例代码如下:
List<String> originalList = new ArrayList<>();
originalList.add("apple");
originalList.add("banana");
originalList.add("peach");
List<String> unmodifiableList = Collections.unmodifiableList(originalList);
在上面的例子中,我们创建了一个名为originalList
的可变列表,并向其中添加了几个元素。然后,我们使用unmodifiableList()
方法创建了一个不可修改的列表,并将其赋值给名为unmodifiableList
的新变量。
现在,我们尝试修改unmodifiableList
中的任何元素,例如向其中添加新元素或删除其中的元素,都会导致UnsupportedOperationException
异常。
下面是一个完整的示例,展示了如何使用unmodifiableList()
方法创建不可修改的List并尝试添加元素产生异常:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class UnmodifiableListExample {
public static void main(String[] args) {
List<String> originalList = new ArrayList<>();
originalList.add("apple");
originalList.add("banana");
originalList.add("peach");
List<String> unmodifiableList = Collections.unmodifiableList(originalList);
// 尝试向不可修改的列表添加新元素
try {
unmodifiableList.add("pear");
} catch (UnsupportedOperationException e) {
System.out.println("添加新元素异常:" + e.getMessage());
}
// 尝试从不可修改的列表中删除元素
try {
unmodifiableList.remove(1);
} catch (UnsupportedOperationException e) {
System.out.println("删除元素异常:" + e.getMessage());
}
// 尝试修改不可修改的列表
try {
unmodifiableList.set(1, "orange");
} catch (UnsupportedOperationException e) {
System.out.println("修改元素异常:" + e.getMessage());
}
}
}
执行该代码将输出以下结果:
添加新元素异常:null
删除元素异常:null
修改元素异常:null
通过这个例子,我们可以看到,当我们尝试对unmodifiableList
进行任何修改时,都会抛出UnsupportedOperationException
异常。这证明了unmodifiableList()
方法确实创建了一个不可修改的列表。因此,如果你需要创建一个只读的列表,或者需要将一个列表传递给某个函数但不希望其修改该列表,则可以使用unmodifiableList()
方法。