繁体   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