发布网友 发布时间:2023-09-20 08:50
共4个回答
热心网友 时间:2023-09-23 14:07
你好。原因在这里。关键你的这个List构件的时候是用的追答看了你的例子,我仔细想了下。是这样子的。
List sub = list.subList(2, 6);
并没有创建新的对象,而仅仅是用sub这个引用指向了原来的内存中的2-6的那片区域。
所以在调用list.removeAll(sub)的时候,他相当于对这片内存一边遍历一边移除,在这种并发修该的情况下,会产生不确定的结果,所以就不允许这样的操作,就会抛异常。
解决办法就是新开辟内存。重新赋值。
热心网友 时间:2023-09-23 14:08
不可以在遍历的过程中删除list中的元素,可以先把要删除的元素保存起来,追答之前看错了,额,这么讲吧,subList在使用迭代器的时候线程是锁死的,不可以修改元素。
你这样List sub = new ArrayList(list.subList(2, 6));
应该就可以,重新保存迭代后的结果
热心网友 时间:2023-09-23 14:08
做设计的买什么手提电脑比较合适(台式不合适,现在需手提电脑)。求高手指导。热心网友 时间:2023-09-23 14:09
List<String> list = new ArrayList<String>(Arrays.asList("1", "2", "3",