objects.values().iterator(), , remove(), objects onRemove(). , .
, , Iterator, remove UnsupportedOperationException:
return Collections.unmodifiableCollection(objects.values()).iterator();
, Iterator remove, onRemove(), , Iterator . , - .
public abstract class MapObjects<MapleMapObject> implements Iterable<MapleMapObject> {
...
@Override
public Iterator<MapleMapObject> iterator() {
return new Iterator<MapleMapObject>() {
private final Iterator<MapleMapObject> iterator = objects.values().iterator();
@Override
public boolean hasNext() {
return iterator.hasNext();
}
@Override
public MapleMapObject next() {
return iterator.next();
}
@Override
public void remove() {
onRemove();
iterator.remove();
}
};
}
}