集合是否有ReadOnly只读方式?

DLCV 2010-01-25 08:54:09
集合是否有ReadOnly只读方式?


今天在网上 看到一个“数组与集合的区别”的评述, 内容如下:
数组与集合的区别:

一:数组声明了它容纳的元素的类型,而集合不声明。这是由于集合以object形式来存储它们的元素。

二:一个数组实例具有固定的大小,不能伸缩。集合则可根据需要动态改变大小。

三:数组是一种可读/可写数据结构没有办法创建一个只读数组。然而可以使用集合提供的ReadOnly只读方式来使用集合。该方法将返回一个集合的只读版本。

--------------------------------------------------------------------------------


对以上第三点 中的集合有ReadOnly只读方式感到 怪异,在jdk中也没查到 什么ReadOnly()只读方法!!!

请问 这点是否正确? 迷惑ing......希望哪位高手给与指点一二 ~~~~~~·····/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/""""
...全文
213 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BearKin 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 inhibitory 的回复:]
public static <T> Collection <T> unmodifiableCollection(Collection <? extends T> c)
返回指定 collection 的不可修改视图。此方法允许模块为用户提供对内部 collection 的“只读”访问。在返回的 collection 上执行的查询操作将“读完”指定的 collection。试图修改返回的 collection(不管是直接修改还是通过其迭代器进行修改)将导致抛出 UnsupportedOperationException。
返回的 collection 不会 将 hashCode 和 equals 操作传递给底层实现 collection,但这依赖于 Object 的 equals 和 hashCode 方法。在底层实现 collection 是一个 set 或是一个列表的情况下,有必要遵守这些操作的协定。

如果指定 collection 是可序列化的,则返回的 collection 也将是可序列化的。

参数:
c - 将为其返回一个不可修改视图的 collection。
返回:
指定 collection 的不可修改视图。
[/Quote]

学到了学到了 逛论坛有收获
Inhibitory 2010-01-27
  • 打赏
  • 举报
回复
public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)
返回指定 collection 的不可修改视图。此方法允许模块为用户提供对内部 collection 的“只读”访问。在返回的 collection 上执行的查询操作将“读完”指定的 collection。试图修改返回的 collection(不管是直接修改还是通过其迭代器进行修改)将导致抛出 UnsupportedOperationException。
返回的 collection 不会 将 hashCode 和 equals 操作传递给底层实现 collection,但这依赖于 Object 的 equals 和 hashCode 方法。在底层实现 collection 是一个 set 或是一个列表的情况下,有必要遵守这些操作的协定。

如果指定 collection 是可序列化的,则返回的 collection 也将是可序列化的。

参数:
c - 将为其返回一个不可修改视图的 collection。
返回:
指定 collection 的不可修改视图。
monkeyking1987 2010-01-27
  • 打赏
  • 举报
回复
这问题让我有收获...
Select9 2010-01-26
  • 打赏
  • 举报
回复
Collections.unmodifiableCollection()返回一个List类型的对象
这个对象是原集合的一层包装,只能访问(get),不能修改(set)
临远 2010-01-25
  • 打赏
  • 举报
回复
Collections.unmodifiableCollection()

不管你原来是什么集合,经过这么一转换,都变成只读集合。

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧