I have a class member list I am iterating over in following method:
public void deselectAll() {
    Iterator<GraphicalObject> iterator = selectedObjects.iterator();
    while(iterator.hasNext())
    {
        iterator.next().setSelected(false);
    }
}
Method setSelected() will cause current element to be removed in subsequent calls that setSelected() triggers. Is there a way I can remove current element somewhere out of this method and continue iterating normally?
EDIT: I see question is ambiguous a bit. Here's example showing problem in context ( I left out irrelevant code):
public class Model {
     private List<GraphicalObject> selectedObjects;
     private final GraphicalObjectListener listener = new GraphicalObjectListener() {
           @Override
           public void graphicalObjectSelectionChanged(GraphicalObject go) {
                int index = selectedObjects.indexOf(go);
                if(go.isSelected()) {
                     if(index == -1) {
                          selectedObjects.add(go);
                      } else {
                          return;
                      }
                } else {
                      if(index != -1) {
                          selectedObjects.remove(index);
                      } else {
                          return;
                      }
                }
                notifyListeners();
          }
    };
    public void deselectAll() {
        Iterator<GraphicalObject> iterator = selectedObjects.iterator();
        while(iterator.hasNext()){
                iterator.next().setSelected(false);
        }
    } 
}
public abstract class AbstractGraphicalObject implements GraphicalObject {
    @Override
    public void setSelected(boolean selected) {
        this.selected = selected;
        notifySelectionListeners();
    }
    public void notifySelectionListeners() {
        for (GraphicalObjectListener listener : listeners) {
            listener.graphicalObjectSelectionChanged(this);
        }
    }
}
 
     
    