我有一个包含对象的ArrayList。我一直想要/需要做的是在 ArrayList 中搜索特定对象并更改它的值之一(如果找到)。 IE。我有一支足球运动员球队,例如费城老鹰队,其中包含球队名称、总得分、总擒杀数,然后按名字、姓氏、参加的比赛和位置列出所有球员。我正在寻找一位特定的球员,比如查德·霍尔,我想将他从老鹰队移除,并将他交易到新英格兰爱国者队。到目前为止我所拥有的是 ArrayList 的迭代,但我的代码没有找到播放器然后退出。
case 6:
String name = "";
System.out.print("Who would you like to trade? ");
name = kb.nextLine();
tradePlayer(nflTeams, name);
public static void tradePlayer(ArrayList<Team> nflTeams, String name)
{
Scanner kb = new Scanner(System.in);
String teamName = "";
System.out.print("What team do you want to trade this player to?(Team Acronym) " );
teamName = kb.nextLine();
for(Team t: nflTeams){
if (nflTeams.contains(name.toLowerCase()))
t.setName(teamName);
}
System.out.println("Cannot find " + name);
}
Player
类涉及按名字、姓氏、球队、位置、出场次数构建的球员。我想改变的是团队。在 Team
类中,我有 setName(String)
来设置团队名称。
非常感谢任何建议或想法。
最佳答案
if (nflTeams.contains(name.toLowerCase()))
你想做什么?您的 list nflTeams
包含Team
对象而不是名称。
这是行不通的。
如果您需要访问Team
通过其 name
然后使用Map<String,Team>
相反
关于java - 搜索并更改数组列表中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13712824/