package com.ycsoft.report.commons; import java.util.Iterator; import java.util.LinkedList; import java.util.Map; /** * Map的迭代器副本 * @param <K> */ public class CopiedIterator<K> implements Iterator<K> { private Iterator<K> iterator = null; private Map<K,?> map=null; private K o=null; public CopiedIterator(Map<K, ?> map) { this.map=map; LinkedList<K> list = new LinkedList<K>(); Iterator<K> itr = map.keySet().iterator(); while (itr.hasNext()) { list.add(itr.next()); } this.iterator = list.iterator(); } public boolean hasNext() { return this.iterator.hasNext(); } public void remove() { this.map.remove(o); } public K next() { this.o=this.iterator.next(); return this.o; } }