Untitled
unknown
java
2 years ago
1.6 kB
6
Indexable
public static List<Map.Entry<String, Double>> findTopEconomicalBowlers(List<Match_Data> matches, List<Delivery_Data> deliveries) { Map<String, Double> topEconomyOfBowlers = new HashMap<>(); Map<String, Integer> runsConcededPerBowler = new HashMap<>(); Map<String, Integer> ballsPerBowler = new HashMap<>(); for (Delivery_Data delivery : deliveries) { if (isDeliveryIn2015(matches, delivery.getMatch_id())) { int balls = ballsPerBowler.getOrDefault(delivery.getBowler(), 0) + 1; ballsPerBowler.put(delivery.getBowler(), balls); int runs = runsConcededPerBowler.getOrDefault(delivery.getBowler(), 0) + Integer.parseInt(delivery.getTotal_runs()); runsConcededPerBowler.put(delivery.getBowler(), runs); } } for (String bowler : ballsPerBowler.keySet()) { int balls = ballsPerBowler.get(bowler); int runs = runsConcededPerBowler.get(bowler); double oversCount = balls / 6.0; double economyRate = runs / oversCount; topEconomyOfBowlers.put(bowler, economyRate); } Set<Map.Entry<String, Double>> entrySet = topEconomyOfBowlers.entrySet(); List<Map.Entry<String, Double>> sortedList = new ArrayList<>(entrySet); sortedList.sort(Map.Entry.comparingByValue()); return sortedList; } private static boolean isDeliveryIn2015(List<Match_Data> matches, String matchId) { for (Match_Data match : matches) { if (match.getId().equals(matchId) && match.getSeason().equals("2015")) { return true; } } return false; }
Editor is loading...