如何使ArrayList只读?
只读表示Collection的不可修改视图,在该视图中,我们无法执行将通过add()更改collection的任何操作,请移除()或set()方法。我们可以通过调用Collections.unmodifiableCollection()方法从现有集合中获取只读集合。
public class UnmodifiableArrayList {
public static void main(String[] args) {
List<String> fruitList = new ArrayList<String>();
fruitList.add("Mango");
fruitList.add("Banana");
fruitList.add("Apple");
fruitList.add("Strawberry");
fruitList.add("Pineapple");
List<String> unmodifiableList= Collections.unmodifiableList(fruitList);
unmodifiableList.add("INDIA");
System.out.println(fruitList);
}
}
输出:
Exception in thread "main"java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055)
at collectionInterview.list.UnmodifiableArrayList.main(UnmodifiableArrayList.java:20)
在这里,我们已将现有列表fruitList转换为不可修改的List。如果我们更改" unmodifiableList",它将导致UnsupportedOperationException。我们仍然可以使用fruitList引用更改列表。就像打电话: