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

如何比较保存在 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);

   }

}                   

我的代码提供了所有团队成员的累积频率,而不是将两个单独的分数相加


蓝山帝景
浏览 177回答 3
3回答

长风秋雁

以前的答案效果很好。这是一个简化代码和提高可读性的想法(虽然它做同样的事情!):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){&nbsp; if(!teamMembers.contains(team.getTeamMember())){&nbsp; &nbsp; teamMembers.add(team.getTeamMember());&nbsp; }}double totalRuns = 0;for(String teamMember : teamMembers){&nbsp; double runs = 0;&nbsp; for(BaseBallTeam team : list){&nbsp; &nbsp; if(team.getTeamMember().equals(teamMember)){&nbsp; &nbsp; &nbsp; runs += team.getHomeRuns();&nbsp; &nbsp; }&nbsp; }&nbsp; System.out.println("Amount of " + teamMember + "s hit " + runs + " home runs");&nbsp; totalRuns += runs;}System.out.println("Total homeruns " + totalRuns);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java