如何使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<String> list = new ArrayList<String>();
list.add("JavaFx");
list.add("Java");
list.add("WebGL");
list.add("OpenCV");
System.out.println(list);
//将ArrayList转换为只读列表
List<String> myList = (List<String>) 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<String> list = new ArrayList<String>();
list.add("JavaFx");
list.add("Java");
list.add("WebGL");
list.add("OpenCV");
System.out.println(list);
//将ArrayList转换为只读列表
List<String> myList = (List<String>) 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)
以上是 如何使ArrayList在Java中只读? 的全部内容, 来源链接: utcz.com/z/351499.html