Java 将对象添加到arrayList而不覆盖它
如何从其他类访问上述方法,而不必覆盖arraylist中的对象?我正在尝试创建一个新的玩家,并设置其名称/价值/花费,然后将其添加到PlayerList的arraylist中,而不是覆盖它 ArrayList对象不会覆盖,除非您明确告诉它们,否则它们只会在您向其中插入数据时移动内容 也就是说,访问底层数据结构而不实际篡改它们的一个好方法是迭代器Java 将对象添加到arrayList而不覆盖它,java,list,arraylist,Java,List,Arraylist,如何从其他类访问上述方法,而不必覆盖arraylist中的对象?我正在尝试创建一个新的玩家,并设置其名称/价值/花费,然后将其添加到PlayerList的arraylist中,而不是覆盖它 ArrayList对象不会覆盖,除非您明确告诉它们,否则它们只会在您向其中插入数据时移动内容 也就是说,访问底层数据结构而不实际篡改它们的一个好方法是迭代器 似乎您正试图在ArrayList中放置唯一的对象。但是,当您添加与先前项目完全相似的新项目时,ArrayList不会覆盖先前的项目。ArrayList保
似乎您正试图在ArrayList中放置唯一的对象。但是,当您添加与先前项目完全相似的新项目时,ArrayList不会覆盖先前的项目。ArrayList保留所有重复项。如果不想保留重复项,则可以使用覆盖equals方法和hashCode方法的HashSet。但是,如果仍要使用ArrayList,在这种情况下,可以按照以下步骤操作: 一,。重写你的玩家类等于方法。为那些要标识玩家唯一性的属性重写you equals方法。 2.在添加到ArrayList之前,请使用ArrayList.contains方法评估ArrayList中是否已存在项-
是的,你可以!只需自己检查一下,你可能需要重新表述你的问题。不清楚您想要什么。上面的内容不会覆盖列表中的项目。如果您遇到问题,它可能位于其他地方,例如在Player中。这是一个有趣的问题,但应该重新表述以使其更清楚。抱歉,伙计们,问题不是它被覆盖,上面的代码是正确的,而是在我的构造函数中,我正在重新创建包含所有玩家的PlayerList ArrayList。我花了3个小时才弄明白,但当我发现问题的时候,感觉还是很好的。无论如何,谢谢你的帮助。案件结案。
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;
}
Player newPlayer = new Player();
newPlayer.setPlayerName(playerName);
newPlayer.setPlayerWorth(playerWorth);
newPlayer.setPlayerSpent(playerSpent);
if(!playerAList.contains(newPlayer)){
playerAList.add(newPlayer);
}