[英]Getting an item from an ArrayList, within another ArrayList in Java?(Board wants to get a player within a location)
适用于Java中的垄断型游戏。 我想知道我如何通过他们的ID获得特定的玩家,它会通过板上位置的数组列表,检查每个特定玩家的arrayList。
public class Board
private ArrayList<Location> AllLocations = new ArrayList<Location>();
public Player getPlayer(int pl){
int index = 0;
for(Location temp : AllLocations)
{
if(temp.getPlayerId() == pl)
{return temp;}
}
return null;
}
}
public abstract class Location {
private ArrayList<Player> Players = new ArrayList<Player>();
public Player getPlayerId (int id) {
int index = 0;
for(Player temp : Players)
{
if(temp.getId() == id)
{return temp;}
else
{return null;}
}
return null;
}
}
public class Player {
public int getId() {
return PlayerId;
}
}
我只是想得到它,所以我可以找出iD 1播放器的位置,例如,他们在棋盘上的位置。
无需拥有位置列表,也不必根据ID搜索玩家。 将位置变量添加到播放器对象,以便播放器始终知道其位置。
不相关,在循环中使用temp作为变量名会使代码难以阅读。 我建议使用更具描述性的名称,例如“玩家”或“位置”。
恕我直言,位置类不应包含播放器列表。 在大多数情况下,此列表将为空,因此毫无意义。 考虑向玩家添加位置变量,或引入某种游戏控制器类,以将玩家与其位置联系起来。
您应该(在您的棋盘或游戏中)拥有一个包含所有玩家的列表(按ID索引)-如果您的ID不是连续的,则应该有一个Map。 它们并不会真正独立于游戏而改变,因此始终搜索它们毫无意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.