Интерфейс Iterable предоставляет такую функциональность:
public class ProjectSet implements Iterable<Project> { private ArrayList<Project> projects; public ProjectSet() { this.projects = new ArrayList<Project>(); } // .. iteration methods ?? @Override public Iterator<Project> iterator() { return projects.iterator(); } }
Вы можете менять логику итератора так, как вам нужно.
Да, вам следует реализовать java.util.Iterable