草庐IT

java - 如何在 foreach 方法中从流中删除对象?

我必须数组:arrA和arrB。arrA和arrB是不同类型的对象列表,add函数将对象A转换为对象B。我想将每个对象从arrA添加到arrB并从arrA中删除该对象。我试图通过流来做到这一点:arrA.stream().foreach(c->{arrB.add(c);arrA.remove(c);});当我执行此操作时,会发生两件事:并非所有对象都从arrA传递到arrB。在几次迭代后抛出空指针异常。我猜这是因为数组的长度在每次remove()调用后减少并且迭代计数器增加(只有奇数索引下的对象被传递给arrB)现在我可以通过在一个流调用中复制数组然后在第二个流调用中删除对象来解决这个