一、集合 ` 二、Collection类 1、 Collection的常用方法 2、迭代器 三、List 迭代器 四、List的遍历方式 1、使用迭代器 2、普通for 3、增强for 五、ConcurrentModificationException异常 六、基本数据结构 1、栈 2、队列 3、数 ...
分类:
编程语言 时间:
2020-05-14 15:07:14
阅读次数:
58
首先看下下面的各种删除list元素的例子 报异常IndexOutOfBoundsException我们很理解,是动态删除了元素导致数组下标越界了。 那ConcurrentModificationException呢? 其中,for(xx in xx)是增强的for循环,即迭代器Iterator的加强 ...
分类:
编程语言 时间:
2020-04-29 14:44:59
阅读次数:
69
List<String> list = new ArrayList<>();使用ArrayList对数据进行赋值,会出现不同线程争抢同一资源造成写入失败问题,会抛出异常“ConcurrentModificationException” List<String> list = new Vector<> ...
分类:
编程语言 时间:
2020-03-30 23:33:57
阅读次数:
97
简介: 并发队列Queue,队列其实就是一个容器 1.同步容器 Vector容器,HashTable容器,都是线程安全 如果同步容器使用foreach迭代过程中修改了元素的值,则会出现ConcurrentModificationException异常 可以使用iterator迭代器解决,但是在多线程 ...
分类:
其他好文 时间:
2020-03-23 18:31:25
阅读次数:
67
java.util.ConcurrentModificationException 问题处理 在对Map集合进行处理时,有时需要对Map集合中的键值对进行过滤删除处理。 例如:对key值进行判断,不满足需求(key值不为“key1”)的需要进行过滤。 1、执行报错的代码如下: public clas ...
分类:
编程语言 时间:
2020-03-17 08:06:24
阅读次数:
73
java.util.ConcurrentModificationException 如果删空了,会报上面这个异常 输出结果如下:remove前集合数据:a,a,b,a,a, remove后集合数据:a,b,a, 为什么会出现这种情况?原因是集合的大小是动态变化的,在删除第1个值为“a”的元素后,集合 ...
分类:
编程语言 时间:
2020-02-15 09:26:12
阅读次数:
81
概要 JDK中提供ArrayList集合方便我们对集合内元素进行增删改查,但是ArrayList为了能够在单线程中快速进行操作其设计并不支持多线程进行操作。ArrayList在多线程环境下可能会产生java.util.ConcurrentModificationException异常。而对于我们需要 ...
分类:
编程语言 时间:
2020-01-24 09:17:58
阅读次数:
81
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提 ...
分类:
其他好文 时间:
2020-01-07 18:30:26
阅读次数:
59
public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d")); for (int i = 0; i < list.s ...
分类:
编程语言 时间:
2020-01-04 22:31:04
阅读次数:
115
集合类不安全操作:只要是在Collections挂过号的都是线程不安全的: java.util.ConcurrentModificationException:并发修改异常 四、我们知道ArraysList是线程不安全的,请编写一个不安全的案例并给出解决方案: 1. ArraysList: 问题: ...
分类:
其他好文 时间:
2019-12-27 09:55:27
阅读次数:
60