使ArrayList只读
给定一个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]