簡體   English   中英

從Java中的另一個ArrayList中的ArrayList中獲取項目?(董事會希望在某個位置獲得一名玩家)

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM