给定一个ArrayList,我们必须使它在Java中是只读的。
只读:如果我们将ArrayList设为只读,即我们只能读取ArrayList,则无法在ArrayList上执行其他操作,如delete,replace,add(使用remove(),set(),add()方法),例如: 只读模式,换句话说,我们不能在只读模式下对ArrayList进行任何修改。
为了使一个ArrayList只读,我们使用unmodifiableCollection()方法中的集合类。
unmodifiableCollection()方法
unmodifiableCollection()方法在java.util包中可用。
unmodifiableCollection()方法用于将Java集合(ArrayList)设为只读。
unmodifiableCollection()方法用于返回与我们输入相同的ArrayList(即,不可修改的视图)。
在unmodifiableCollection视图中进行修改时,unmodifiableCollection()方法可能会引发异常。
UnsupportedOperationException:在此异常中,如果我们尝试修改集合。
语法:
public static Collection unmodifiableCollection(Collection co){ }
参数:
co-表示要为其返回不可修改视图的ArrayList集合对象。
返回值:
此方法的返回类型为Collection,它返回该集合的不可修改视图。
示例
//Java程序演示的例子 //只读 // unmodifiableCollection()Collections类的方法 import java.util.*; public class ArrayListMakeReadOnly { public static void main(String[] args) { //ArrayList声明 Collection arr_list = new ArrayList(); //添加一些元素 //ArrayList- arr_list.add(10); arr_list.add(20); arr_list.add(30); arr_list.add(40); arr_list.add(50); //显示ArrayList- System.out.println("Display ArrayList Elements"); System.out.println(arr_list); System.out.println(); //通过使用unmodifiableCollection()方法来使 //ArrayList- Read-Only Collection al_ro = Collections.unmodifiableCollection(arr_list); //添加元素,我们将获得异常 //ArrayList- i.e. Below statement is invalid //al_ro.add(60); //删除元素,我们将得到一个例外。 //ArrayList- i.e. Below statement is invalid //al_ro.remove(1); //替换元素,我们将获得异常 //ArrayList- i.e. Below statement is invalid //al_ro.set(2,60); } }
输出结果
Display ArrayList Elements [10, 20, 30, 40, 50]