public ArrayList<Player> addPlayer(String playerName, int playerWorth, int playerSpent)
{
Player newPlayer = new Player();
newPlayer.setPlayerName(playerName);
newPlayer.setPlayerWorth(playerWorth);
newPlayer.setPlayerSpent(playerSpent);
playerAList.add(newPlayer);
return playerAList;
}
如何从不同的类访问上述方法而不必覆盖arraylist
中的对象?我正在尝试创建新的Player
并设置其名称/值/花费,然后将其添加到arraylist
playerAList
而不是覆盖它。
答案 0 :(得分:1)
除非您明确告诉他们,否则不会覆盖ArrayList对象,只是在您向其中插入数据时移动内容。
话虽这么说,访问底层数据结构而不实际篡改它们的好方法是迭代器 http://www.tutorialspoint.com/java/java_using_iterator.htm
答案 1 :(得分:1)
您似乎正在尝试在ArrayList
中放置唯一对象。但是当你添加一个与前一个项目完全相似的新项目时,ArrayList
不会覆盖前面的项目。 ArrayList
保留所有重复项。如果您不想保留重复项,则可以使用HashSet
(覆盖equals()
方法和hashCode()
方法)。但是如果您仍想使用ArrayList
,在这种情况下您可以按照以下步骤操作:
1。覆盖您的Player
类equals()
方法。覆盖等于您想要识别玩家唯一性的属性的方法
2。在添加ArrayList
之前使用ArrayList.contains()
方法评估ArrayList
中是否已存在某个项目 -
Player newPlayer = new Player();
newPlayer.setPlayerName(playerName);
newPlayer.setPlayerWorth(playerWorth);
newPlayer.setPlayerSpent(playerSpent);
if(!playerAList.contains(newPlayer)){
playerAList.add(newPlayer);
}