package concurrent.copyOnWriteArraylist;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* CopyOnWriteArrayList功能与ArrayList类似
* ArrayList在对其使用的迭代器遍历期间如果对List中的内容进行修改,会抛异常
* CopyOnWriteArrayList弥补了ArrayList的这一缺陷
*/
public class CopyOnWriteArrayListTest {
public static void main(String[] args) {
Collection<User> users = new CopyOnWriteArrayList<User>();
// Collection<User> users = new ArrayList<User>();
users.add(new User("张三", 28));
users.add(new User("李四", 25));
users.add(new User("王五", 31));
Iterator<User> itrUsers = users.iterator();
while (itrUsers.hasNext()) {
System.out.println("aaaa");
User user = (User) itrUsers.next();
if ("张三".equals(user.getName())) {
users.remove(user);
// itrUsers.remove();
} else {
System.out.println(user);
}
}
}
}
分享到:
相关推荐
下面小编就为大家带来一篇基于CopyOnWriteArrayList并发容器(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要为大家详细介绍了java并发容器CopyOnWriteArrayList实现原理及源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java遍历时可修改的容器CopyOnWriteArrayList
在Java中,CopyOnWriteArrayList(写入时复制数组列表)是线程安全的集合类,它实现了List接口,并使用了"写入时复制"的策略来保证线程安全性。 CopyOnWriteArrayList的主要特点是:在进行修改操作(例如添加、修改...
高并发的情况下,一般都要求性能要给力,Vector 显然不够格,所以被遗忘在角落也是“罪有应得”啊。 SynchronizedList 那有些同学可能会说,可以使用 Collections.synchronizedList() 让 ArrayList 变成线程安全啊...
1. CopyOnWriteArrayList的简介 2. COW的设计思想 3. CopyOnWriteArrayList的实现原理 4. 总结 2.读线程间
1、CopyOnWriteArrayList位于java.util.concurrent包下,可想而知,这个类是为并发而设计的 2、CopyOnWriteArr
今天小编就为大家分享一篇关于Java源码解析CopyOnWriteArrayList的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
CopyOnWriteArrayList是ArrayList的线程安全版本,从名字推测,CopyOnWriteArrayList是在有写操作的时候会copy一份数据,然后写完再设置成新的数据。CopyOnWriteArrayList适用于读多写少的并发场景。而...
目前上传的是CopyOnWriteArrayList.uml类图,包含该类的各个extends、implements的接口或者类
java中,List在遍历的时候,如果被修改了会抛出java.util.ConcurrentModificationException错误。 看如下代码: import java.util.ArrayList; import java.util.List; public class Resource3 { ...
Java concurrency集合之 CopyOnWriteArrayList_动力节点Java学院整理,动力节点口口相传的Java黄埔军校
Java 多线程与并发(14_26)-JUC集合_ CopyOnWriteArrayList详解
ArrayList 是我们常用的工具类之一,但是在多线程的情况下,ArrayList 作为共享变量时,并不是线程安全的。主要有以下两个原因: 1、ArrayList 自身的 ...用 JUC 下的 CopyOnWriteArrayList ; 先来看看 Synchron
今天不看源码(想看源码的同学可以自己在本机进行查阅),只是大概说一下这三者的区别。方便大家能够在面试的时候说出这三者的不同。 ArrayList方面 ArrayList简介: ArrayList是一种以数组实现的List,它实现了...
run_ver3.zip
private CopyOnWriteArrayList<Book> bookList= new CopyOnWriteArrayList(); private Binder binder = new IBookManager.Stub(){ @Override public List<Book> getBookList() throws RemoteException { return...
CopyOnWriteArrayList 标记: class Set 标记: interface HashSet 标记: class CRUD : boolean add(E e) boolean remove(Object o) 底层哈希表,基于hashCode的equals的比较方式,线程不安全,存取速度快。 ...