Refactor

 avatar
unknown
java
2 years ago
2.5 kB
7
Indexable
private static void findOutAverageWideBallsOfATeamInAllSeason(List<Match> matches, List<Delivery> deliveries) {
        Map<Integer,Map<String,Venue>> averageWideBallsOfATeamInAllSeason = new HashMap<>();
        Map<String,String> matchIdToSeasonMap = new HashMap<>();

        for(Match match : matches) {
            matchIdToSeasonMap.put(match.getId(),match.getSeason());
        }

        for(Delivery balls : deliveries) {
            int matchId = Integer.parseInt(matchIdToSeasonMap.get(balls.getMatchId()));
            if(averageWideBallsOfATeamInAllSeason.containsKey(matchId)) {
                Map<String,Venue> ans = averageWideBallsOfATeamInAllSeason.get(Integer.parseInt(matchIdToSeasonMap.get(balls.getMatchId())));
                if(ans.containsKey(balls.getBowlingTeam())) {
                    Venue ls = ans.get(balls.getBowlingTeam());
                    ls.setWideRuns(ls.getWideRuns() + Integer.parseInt(balls.getWideRuns()));
                    ls.setTotalBalls(ls.getTotalBalls() + 1);
                }
                else {
                  //  Venue ls = new Venue();
                 //   ls.setTotalBalls(1);
                 //   ls.setWideRuns(Integer.parseInt(balls.getWideRuns()));
                    ans.put(balls.getBowlingTeam(), new Venue(1, balls.getWideRuns());
                }
            }
            else {
                int year = Integer.parseInt(matchIdToSeasonMap.get(balls.getMatchId()));
                Map<String,Venue> ls = new HashMap<>();
               // Venue data = new Venue();
                // Venue data = new Venue(totalRuns, wideRuns);
               // data.setWideRuns(Integer.parseInt(balls.getWideRuns()));
               // data.setTotalBalls(1);
                ls.put(balls.getBowlingTeam(), new Venue(1, balls.getWideRuns()));
                averageWideBallsOfATeamInAllSeason.put(year,ls);
            }
        }

        for(Map.Entry<Integer , Map<String, Venue>> list : averageWideBallsOfATeamInAllSeason.entrySet()) {
            System.out.print("Season :- " + list.getKey()+" ");
            for(Map.Entry<String, Venue> list2 : list.getValue().entrySet()) {
                double balls = list2.getValue().getTotalBalls();
                double wideRuns = list2.getValue().getWideRuns();
                System.out.println(list2.getKey() + " " + (wideRuns/balls)*100);
            }
            System.out.println();
        }
    }
Editor is loading...