为了创建和演示Java中的不可变集合,我们使用的unmodifiableCollection()
方法。此方法返回集合的不可修改且不变的视图。
声明-java.util.Collections.unmodifiableCollection()方法的声明如下-
public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)
其中c是要返回其不变视图的集合。
让我们看一个程序,以创建和演示Java中的不可变集合-
import java.util.*; public class Example { public static void main (String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(10); list.add(50); list.add(30); list.add(20); list.add(40); list.add(60); System.out.println("Original list : " + list); Collection<Integer> col = Collections.unmodifiableCollection(list); col.add(30); System.out.println(col); } }
由于我们尝试将元素添加到不可变集合中,因此程序将引发以下异常-
输出结果
Original list : [10, 50, 30, 20, 40, 60] Exception in thread "main" java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055) at Example.main(Example.java:17)