хочу сделать что-то похожее на
это
Однако я НЕ хочу, чтобы добавленные элементы повторялись. По сути, у меня есть основной arraylist, и я возвращаю итератор по arraylist. Итерируя с помощью этого итератора, я хочу добавить элементы в исходный массив. Как мне это сделать?
РЕДАКТИРОВАТЬ: проблема в том, что мне нужно, чтобы объекты в итераторе модифицировались итерационным кодом. Я не думаю, что клонирование массива будет работать ...
РЕДАКТИРОВАТЬ 2: Вот урезанная версия моего кода.
public class Map {
// a bunch of code
private ArrayList<Robot> robots;
public Iterator<Robot> getRobots() {
return robots.iterator();
}
public void buildNewRobot(params) {
if(bunchOfConditions)
robots.add(new Robot(otherParams);
}
// a bunch more code
}
А вот карта, используемая в другом классе.
for(Iterator<Robot> 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);
}