Java Arraylist删除对象

时间:2012-12-12 08:39:45

标签: java object arraylist lwjgl

每次从arraylist形状到达指定位置的盒子时,都必须从arraylist中删除它。但它似乎不起作用,我做错了什么?

if(!box.removing && box.y == MoveY - 50 && MoveX != box.x) {
                    box.removing = true;
                    score += 10;

                    System.out.println(shapes.indexOf(box));

                    shapes.remove(shapes.indexOf(box));


                } else {
                    // Gravity loop, if not reached the position. This work.
                    box.update(1);
                }

2 个答案:

答案 0 :(得分:2)

List类型支持“.remove()”的变体,它将对象本身作为参数,因此您不需要先查找其索引,然后按索引删除。话虽这么说,这个操作对于类型ArrayList是相对昂贵的;如果要在任意位置插入/删除,请使用LinkedList。

答案 1 :(得分:1)

//data = your Array list
for (Iterator i = data.iterator(); i.hasNext(); ) {
    Object element = i.next();

    if ((..your conition..)) {
       i.remove();
    }
}

如果要检查每个对象的条件,请使用上面的代码。但是,如果你只想要删除那个对象而不是简单地调用它。

yourList.remove(your-object);

看看this