Java并发迭代器arraylist shenanigans

时间:2010-11-09 04:48:51

标签: java concurrency

我有一些使用迭代器来遍历arraylist的代码。如果满足某个条件,我想在arraylist中添加一个对象。这可以用迭代器完成吗?或者我是否只需使用l oopedy循环?


itr=particleArr.iterator();
while (itr.hasNext()){
    particle=itr.next();
    if (isMyLifeUtterlyMeaningless)) {
         particleArr.add(new Particle(particle.getXCoor() - 5,
             particle.getYCoor() + 5,
             colorState));
}}
抛出修改异常。那么如何用迭代器重写它呢?

2 个答案:

答案 0 :(得分:4)

怎么样:

    newParticles = new ArrayList<Particle>();
    for (Particle particle : particleArr) {
        if (isMyLifeUtterlyMeaningless)) {
            newParticles.add(new Particle(particle.getXCoor() - 5,
                                          particle.getYCoor() + 5,
                                          colorState));
        }
    }
    particleArr.addAll(newParticles);

答案 1 :(得分:2)