【发布时间】:2014-04-09 10:35:57
【问题描述】:
我没有经常使用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;
}
我知道问题出在EList.remove(tempEnemy); 上,并且如果它是正常的 for 循环,我知道如何完成此任务。
但是这种增强的 for 循环(我的讲师称之为)让我感到困惑。
所以我想我的问题是如何从 Arraylist 中删除同时匹配 x 和 y 的变量?
【问题讨论】:
-
两艘船可以有相同的坐标吗?
-
是的,两艘敌舰可以。
-
如果有两艘坐标相同的船,都被摧毁了吗?
-
如果玩家战舰与 1 艘敌舰在同一坐标上,则玩家获胜并移除敌舰,如果玩家与 2 艘敌舰在同一坐标上,则玩家输。如果有 2 艘敌舰在与玩家舰船相同的坐标上,敌舰幸存会更好,但不会破坏交易。