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

专用于集合的java.util包方法的Collections类,这些方法提供了涉及多态算法的各种附加操作。

此类提供unmodifiable()方法的不同变体,如下所示-序号方法与说明1静态集合 unmodifiableCollection(Collection c)

此方法接受任何集合对象,并返回指定集合的不可修改视图。

2静态 List unmodifiableList(List list)

此方法接受List接口的对象,并返回其不可修改的视图。

3静态 Map unmodifiableMap(Map m)

此方法接受Map接口的对象并返回其不可修改的视图。

4静态 Set unmodifiableSet(Set s)

此方法接受Set接口的对象并返回其不可修改的视图。

5静态 SortedMap unmodifiableSortedMap(SortedMap m)

此方法接受SortedMap接口的对象,并返回该对象的不可修改视图。

6静态 SortedSet unmodifiableSortedSet(SortedSet s)

此方法接受SortedSet接口的对象,并返回指定排序集的不可修改视图。

通过使用关于集合的方法之一,可以使集合对象为只读。

示例

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

import java.util.Collections;

import java.util.Vector;

public class CollectionReadOnly {

public static void main(String[] args) {

//实例化ArrayList对象

Vector vector = new Vector();

vector.add("JavaFx");

vector.add("Java");

vector.add("WebGL");

vector.add("OpenCV");

System.out.println(vector);

Collection immutableVector = Collections.unmodifiableCollection(vector);

System.out.println("Vector converted to read only "+immutableVector);

immutableVector.add("CoffeeScript");

}

}

例外[JavaFx, Java, WebGL, OpenCV]

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

Exception in thread "main" java.lang.UnsupportedOperationException

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

at September19.CollectionReadOnly.main(CollectionReadOnly.java:20)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值