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>
复制
Iterator
为了解决并发情况下Iterator遍历导致的问题(当Iterator被修改会抛出ConcurrentModificationException)
,故使用复制原Iterator的方式解决此问题
解决方法为:在构造方法中遍历Iterator中的元素,装入新的List中然后遍历之。 当然,修改这个复制后的Iterator是没有意义的,因此remove方法将会抛出异常。
需要注意的是,在构造此对象时需要保证原子性(原对象不被修改),最好加锁构造此对象,构造完毕后解锁。
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface org.miaixz.bus.core.center.iterator.IterableIterator
iteratorMethods inherited from interface java.util.Iterator
forEachRemaining
-
Constructor Details
-
CopiedIterator
构造,当iterator为空时,默认复制一个空迭代器- Parameters:
iterator- 被复制的Iterator
-
-
Method Details