Java 如果我将对象作为I'添加到队列中,是否会得到ConcurrentModificationException;我正在经历它?
我不知道该如何形成这个问题 基本上我有这个代码:Java 如果我将对象作为I'添加到队列中,是否会得到ConcurrentModificationException;我正在经历它?,java,collections,queue,concurrentmodification,Java,Collections,Queue,Concurrentmodification,我不知道该如何形成这个问题 基本上我有这个代码: java.util.Queue myQueue; ... myQueue.stream().filter(particle -> particle instanceof ParticleDigging).forEach(particle -> { myQueue.add(new ParticleSmoke()); }); 现在我想知道的是,它是否会在某个时刻抛出ConcurrentModificationExcepti
java.util.Queue myQueue;
...
myQueue.stream().filter(particle -> particle instanceof ParticleDigging).forEach(particle -> {
myQueue.add(new ParticleSmoke());
});
现在我想知道的是,它是否会在某个时刻抛出ConcurrentModificationException
它甚至可以使用.stream()引发异常吗?您可以对队列使用ConcurrentLinkedQueue实现。 如果查看java文档,它们不会抛出concurrentModificationException,因为它在内部使用迭代器
Queue myQueue=new ConcurrentLinkedQueue();
如果转换为流,则流生成具有相同效果的拆分器:
default Stream<E> stream() {
return StreamSupport.stream(spliterator(), false);
}
defaultstream(){
返回StreamSupport.stream(spliterator(),false);
}
Dunno,但我不会在迭代集合时尝试更改它
default Stream<E> stream() {
return StreamSupport.stream(spliterator(), false);
}