- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CopyOnWriteArrayList的使用
java.util.concurrent?类 CopyOnWriteArraySetEjava.lang.Objectjava.util.AbstractCollectionEjava.util.AbstractSetEjava.util.concurrent.CopyOnWriteArraySetE类型参数:E?- 此 collection 中所保存元素的类型所有已实现的接口:Serializable,?IterableE,?CollectionE,?SetEpublic class CopyOnWriteArraySetE extends AbstractSetE implements Serializable对其所有操作使用内部?CopyOnWriteArrayList?的?Set。因此,它共享以下相同的基本属性:它最适合于具有以下特征的应用程序:set 大小通常保持很小,只读操作远多于可变操作,需要在遍历期间防止线程间的冲突。它是线程安全的。因为通常需要复制整个基础数组,所以可变操作(add、set?和?remove?等等)的开销很大。迭代器不支持可变?remove?操作。使用迭代器进行遍历的速度很快,并且不会与其他线程发生冲突。在构造迭代器时,迭代器依赖于不变的数组快照。示例用法。?以下代码使用一个写时复制(copy-on-write)的 set,以维护在状态更新时执行某项操作的一组 Handler 对象。 class Handler { void handle(); ... } class X { private final CopyOnWriteArraySetHandler handlers = new CopyOnWriteArraySetHandler(); public void addHandler(Handler h) { handlers.add(h); } private long internalState; private synchronized void changeState() { internalState = ...; } public void update() { changeState(); for (Handler handler : handlers) handler.handle(); } }此类是?Java Collections Framework?的成员。从以下版本开始:1.5另请参见:CopyOnWriteArrayList,?序列化表格构造方法摘要CopyOnWriteArraySet()???????????创建一个空 set。CopyOnWriteArraySet(Collection? extends?E?c)???????????创建一个包含指定 collection 所有元素的 set。?方法摘要?booleanadd(E?e)???????????如果指定元素并不存在于此 set 中,则添加它。?booleanaddAll(Collection? extends?E?c)???????????如果此 set 中没有指定 collection 中的所有元素,则将它们都添加到此 set 中。?voidclear()???????????移除此 set 中的所有元素。?booleancontains(Object?o)???????????如果此 set 包含指定元素,则返回?true。?booleancontainsAll(Collection??c)???????????如果此 set 包含指定 collection 的所有元素,则返回?true。?booleanequals(Object?o)???????????比较指定对象与此 set 的相等性。?booleanisEmpty()???????????如果此 set 不包含任何元素,则返回?true。?IteratorEiterator()???????????返回按照元素添加顺序在此 set 中包含的元素上进行迭代的迭代器。?booleanremove(Object?o)???????????如果指定元素存在于此 set 中,则将其移除。?booleanremoveAll(Collection??c)???????????移除此 set 中包含在指定 collection 中的所有元素。?booleanretainAll(Collection??c)???????????仅保留此 set 中那些包含在指定 collection 中的元素。?intsize()???????????返回此 set
文档评论(0)