Class CopiedIterator<E>

java.lang.Object
org.miaixz.bus.core.center.iterator.CopiedIterator<E>
Type Parameters:
E - 元素类型
All Implemented Interfaces:
Serializable, Iterable<E>, Iterator<E>, IterableIterator<E>

public class CopiedIterator<E> extends Object implements IterableIterator<E>, Serializable
复制 Iterator 为了解决并发情况下Iterator遍历导致的问题(当Iterator被修改会抛出ConcurrentModificationException) ,故使用复制原Iterator的方式解决此问题

解决方法为:在构造方法中遍历Iterator中的元素,装入新的List中然后遍历之。 当然,修改这个复制后的Iterator是没有意义的,因此remove方法将会抛出异常。

需要注意的是,在构造此对象时需要保证原子性(原对象不被修改),最好加锁构造此对象,构造完毕后解锁。

Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • CopiedIterator

      public CopiedIterator(Iterator<E> iterator)
      构造,当iterator为空时,默认复制一个空迭代器
      Parameters:
      iterator - 被复制的Iterator
  • Method Details