[英]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.