Я хочу сделать что-то похожее на this
Однако я НЕ хочу, чтобы добавленные элементы повторялись. В основном у меня есть основной массив, и я возвращаю итератор по массиву. Выполняя итерацию с использованием этого итератора, я хочу добавить элементы в исходный массив массивов. Как мне это сделать?
РЕДАКТИРОВАТЬ: Проблема в том, что мне нужны объекты в итераторе, измененные повторяющимся кодом. Я не думаю, что клонирование arrayylist сработает ...
EDIT2: Вот урезанная версия моего кода.
public class Map {
// a bunch of code
private ArrayList robots;
public Iterator getRobots() {
return robots.iterator();
}
public void buildNewRobot(params) {
if(bunchOfConditions)
robots.add(new Robot(otherParams);
}
// a bunch more code
}
А вот карта, используемая в другом классе.
for(Iterator it = map.iterator(); it.hasNext();){
Robot r = it.next();
// a bunch of stuff here
// some of this code modifies Robot r
if(condition)
map.buildNewRobot(params);
}