首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

关于ArrayList使用时常遇到的有关问题以及解决办法

2012-10-23 
关于ArrayList使用时常遇到的问题以及解决方法事例1:ArrayList在迭代的时候不能去改变自身的元素集合,否则

关于ArrayList使用时常遇到的问题以及解决方法

事例1:ArrayList在迭代的时候不能去改变自身的元素集合,否则会抛异常:java.util.ConcurrentModificationException

List<Integer> list = new ArrayList<Integer>();        list.add(new Random().nextInt(10));        list.add(new Random().nextInt(10));        //开始迭代        Iterator<Integer> iter = list.iterator();        while (iter.hasNext()) {            System.out.println("迭代:" + iter.next());            list.add(new Random().nextInt());        }

?

?

事例2:ArrayList在迭代的时候可以用迭代器删除ArrayList中的元素

List<Integer> list = new ArrayList<Integer>();        list.add(new Random().nextInt(10));        list.add(new Random().nextInt(10));        //开始迭代        Iterator<Integer> iter = list.iterator();        while (iter.hasNext()) {            System.out.println(iter.next()+"元素被删除");            iter.remove();        }

?

?

事例3:CopyOnWriteArrayList是线程安全的集合类,该集合在迭代的时候,可以改变自身的元素集合

List<Integer> syncList = new CopyOnWriteArrayList<Integer>();        syncList.add(1);        syncList.add(5);        Iterator<Integer> iter = syncList.iterator();        int flag;        while (iter.hasNext()) {            flag = iter.next();            System.out.println("迭代:" + flag);            syncList.remove(new Integer(flag));        }        System.out.println("集合的大小:" + syncList.size());

?

?

事例4:CopyOnWriteArrayList是线程安全的集合类,该集合在迭代的时候,不能用迭代器去删除集合中的元素 ,否则会抛异常:java.lang.UnsupportedOperationException

List<Integer> syncList = new CopyOnWriteArrayList<Integer>();        syncList.add(1);        syncList.add(5);        Iterator<Integer> iter = syncList.iterator();        while (iter.hasNext()) {            System.out.println("迭代:" + iter.next());            iter.remove();        }        System.out.println("集合的大小:" + syncList.size());

?

热点排行