/**
* @author Administrator
*传统的集合操作是线程不安全的,现在我们来说一下例子来证明一下
*在下面的图中就会出现死循环,现在cursor等于4,然后有另外一个线程来了,remove这里面cursor==3,然后正准务返回false这
*就返回true了,就再出现死循环了
*以前我们是怎么做的也,是通过Collections.synchroziedMap
*
*/
更多的可以查看集合jdk的文档
现在我们来使用一下集合
/** * @author Administrator *这里面现在我们来测试一下,使用传统的ArrayList(),现在我们在跌代的过程中删除元素,就是报ModificationException *现在我们来分析一下这里面有一个exceptionModcount与 modcount,modcount就是修改的次数,exptionModcount就是数据中总共的元素 */ public class CollectionModifyExceptionTest { public static void main(String[] args) { Collection users = new CopyOnWriteArrayList(); //new ArrayList(); users.add(new User("张三",28)); users.add(new User("李四",25)); users.add(new User("王五",31)); Iterator 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); } } } }