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);
    }