如何在Java中使ArrayList只读?

使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]