Refactor
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...