tôi muốn làm một cái gì đó tương tự như thisSửa Java ArrayList trong khi iterating trên nó
Tuy nhiên, tôi không muốn các yếu tố bổ sung để được lặp kết thúc. Về cơ bản tôi có một danh sách mảng cơ bản, và tôi trả về một trình lặp trên danh sách mảng. Trong khi lặp lại bằng cách sử dụng trình lặp đó, tôi muốn thêm các phần tử vào danh sách mảng ban đầu. Làm thế nào để tôi làm điều này?
EDIT: Vấn đề với điều này là tôi cần các đối tượng trong trình lặp được sửa đổi bởi mã lặp. Tôi không nghĩ rằng nhân bản danh sách mảng sẽ hoạt động ...
EDIT2: Đây là phiên bản rút gọn của mã của tôi.
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
}
Và đây là bản đồ đang được sử dụng trong một lớp khác.
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);
}
sẽ rất hữu ích nếu bạn cung cấp mã có liên quan – ggreiner
Đã thêm mã. Xin lỗi vì đã bỏ qua nó. – BlackSheep