java设置集合元素只读_如何使ArrayList在Java中只读?

java.util.Collections类的unmodifiableList()方法接受List接口的一个对象(实现其类的对象),并返回给定对象的不可修改形式。用户仅对获得的列表具有只读访问权限。

示例

以下Java程序创建一个ArrayList对象,向其中添加元素,然后将其转换为只读List对象。import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class ArrayListReadOnly {

public static void main(String[] args) {

//实例化ArrayList对象

ArrayList list = new ArrayList();

list.add("JavaFx");

list.add("Java");

list.add("WebGL");

list.add("OpenCV");

System.out.println(list);

//将ArrayList转换为只读列表

List myList = (List) Collections.unmodifiableList(list);

System.out.println("Array list converted to read only "+list);

}

}

输出结果[JavaFx, Java, WebGL, OpenCV]

Array list converted to read only [JavaFx, Java, WebGL, OpenCV]

检索List对象的只读视图后,您将无法修改其内容,即,不能直接或使用Iterator对象从其中添加或删除元素,如果这样做,则会引发UnsupportedOperationException。

示例import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class ArrayListReadOnly {

public static void main(String[] args) {

//实例化ArrayList对象

ArrayList list = new ArrayList();

list.add("JavaFx");

list.add("Java");

list.add("WebGL");

list.add("OpenCV");

System.out.println(list);

//将ArrayList转换为只读列表

List myList = (List) Collections.unmodifiableList(list);

myList.add("CoffeeScript");

System.out.println("Array list converted to read only "+myList);

}

}

运行时异常[JavaFx, Java, WebGL, OpenCV]

Exception in thread "main" java.lang.UnsupportedOperationException

at java.util.Collections$UnmodifiableCollection.add(Unknown Source)

at SEPTEMBER.remaining.ArrayListReadOnly.main(ArrayListReadOnly.java:20)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值