📅  最后修改于: 2023-12-03 15:16:34.564000             🧑  作者: Mango
在Java中,我们经常需要将一个可变的集合变为只读的集合。为了实现这个目标,Java提供了一个unmodifiableCollection()
方法。
unmodifiableCollection()
方法是Java集合框架中的一种方法。它可以将一个可变的集合变为只读的集合,从而防止在运行时修改集合。这个方法返回的集合是一个只读的集合,对它的修改操作都将被视为非法操作。
public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)
下面是一个示例,演示如何使用unmodifiableCollection()
方法将一个可变的ArrayList
变为只读的Collection
。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Java");
list.add("C++");
list.add("Python");
System.out.println("Original list: " + list);
Collection<String> readOnly = Collections.unmodifiableCollection(list);
System.out.println("Read-only collection: " + readOnly);
// 修改只读集合将会抛出UnsupportedOperationException异常
readOnly.add("Ruby");
}
}
输出:
Original list: [Java, C++, Python]
Read-only collection: [Java, C++, Python]
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.add(Unknown Source)
at Main.main(Main.java:12)
从输出结果可以看到,当我们尝试向只读集合readOnly
中添加一个元素时,程序抛出了一个UnsupportedOperationException
异常。
UnsupportedOperationException
异常。