2013-02-16 44 views
0

即时通讯设法从我的ArrayList中删除一个对象,由Iterator引用,所以我可以删除该对象。但事情是,它不起作用。从迭代器中删除对象后按下一个键

当键盘下一个正在运行时按下某个键“在这种情况下,按下”时,它必须删除在我的'球'Arraylist中创建的最新对象。

我正在使用LWJGL和OpenGL。

while(Keyboard.next()) { 
if(Keyboard.isKeyDown(Keyboard.KEY_DOWN)) { 
    Iterator<ball> theBall = balls.iterator(); 
    while (theBall.hasNext()) { 
     theBall.remove();  
    } 
} 
} 
+2

你是什么意思是行不通的? – 2013-02-16 19:16:28

+0

那么,我收到一个错误?说'找不到来源'。 – 2013-02-16 19:18:51

+0

你什么时候遇到这个错误?汇编?程序运行时? – 2013-02-16 19:24:41

回答

1

请记住,您必须致电theBall.next();才能转到下一个项目。我没有看到你的代码。

+0

嗯,我真的不知道如何使用.next();可能在我的代码中,因为我不必测试。我只需要删除列表中创建的最新对象。只添加“theBall.next();”进入代码,工作。但破坏所有的对象,而不是最新的。 – 2013-02-16 19:26:35

+0

那么你可能应该在'if'中做到这一点,而不是'while'循环,只要你仍然有元素,它就会持续下去。 – 2013-02-16 20:05:00

0

你迭代的方式是不正确的,因为你必须为每次迭代调用next()。但无论如何,如果你想删除列表的最后一个元素,你不应该循环,你应该取而代之所有的代码:

balls.remove(balls.size() - 1); 
相关问题