Ste*_*tep 0 java for-loop arraylist
我没有ArrayList太多使用,并且我认为从他们带出变量我需要一个增强的for循环.
我试图找出变量并将它们的x值与另一个x和y值比较到另一个y值,如果匹配则删除该变量.
到目前为止,我对这种方法的代码是;
public int detect(int x, int y){
int count=0;
for (EnemyShip tempEnemy:EList){
if(x==tempEnemy.x && y==tempEnemy.y){
EList.remove(tempEnemy);
count++;
}
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
我知道问题在于EList.remove(tempEnemy);并知道如果它是正常的循环,如何完成此任务.
但这个增强的循环(我的讲师称之为)让我感到困惑.
所以我想我的问题是如何从Arraylist中删除与x和y匹配的变量?
使用Jdk 8,您可以使用removeIf方法安全地删除元素.
EList.removeIf(e-> x==e.x && y== e.y);
Run Code Online (Sandbox Code Playgroud)
有关removeIf方法的详细信息,请阅读此文档.
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |