Refactor
unknown
java
3 years ago
2.5 kB
9
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...