为了账号安全,请及时绑定邮箱和手机立即绑定

如何比较保存在 ArrayList 中的对象中的字符串,然后添加这些字符串的值

如何比较保存在 ArrayList 中的对象中的字符串,然后添加这些字符串的值

蓝山帝景 2021-06-21 21:01:07
如何比较保存在 ArrayList 中的对象中的字符串,然后添加这些字符串的值(如果它们彼此相等)?我知道如何检查 ifStringX == StringY或StringX.equals(StringY),但我不明白如何比较 an 中的字符串ArrayList,更不用说如何添加 String 对象中保存的双精度值(仅当该字符串相等时)。示例 类 BaseBallTeam 有两个属性;String teamMember eg Kat双本垒打,例如 2.0我想将所有 Kats(string) 制作的所有 homeRuns(double) 加起来。以及所有麦克风等制作的所有本垒打(双人)。这是我的代码:ArrayList<BaseBallTeam> list = new ArrayList<>();double totalRuns = 0;for(int i = 0; i<list.size();i++){   for(int j = 1; j<list.size();j++){            if(list.get(i).getTeamMember().equals(list.get(j).getTeamMember())){       totalRuns += list.get(j).getHomeRuns() +list.get(i).getHomeRuns();       System.out.println("Amount of " + list.get(i).getTeamMember() + "s hit " + totalRuns"home runs);   }}                   我的代码提供了所有团队成员的累积频率,而不是将两个单独的分数相加
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

以前的答案效果很好。这是一个简化代码和提高可读性的想法(虽然它做同样的事情!):


BaseBallTeam kate1 = new BaseBallTeam("Kate", 2.0);

BaseBallTeam kate2 = new BaseBallTeam("Kate", 3.0);

BaseBallTeam mike1 = new BaseBallTeam("Mike", 1.0);

BaseBallTeam mike2 = new BaseBallTeam("Mike", 5.0);

List<BaseBallTeam> list = Arrays.asList(kate1, kate2, mike1, mike2);


ArrayList<String> teamMembers = new ArrayList<>();

for(BaseBallTeam team : list){

  if(!teamMembers.contains(team.getTeamMember())){

    teamMembers.add(team.getTeamMember());

  }

}


double totalRuns = 0;


for(String teamMember : teamMembers){

  double runs = 0;

  for(BaseBallTeam team : list){

    if(team.getTeamMember().equals(teamMember)){

      runs += team.getHomeRuns();

    }

  }

  System.out.println("Amount of " + teamMember + "s hit " + runs + " home runs");

  totalRuns += runs;

}

System.out.println("Total homeruns " + totalRuns);


查看完整回答
反对 回复 2021-06-23
  • 3 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信