borovaneca

PlantDiscovery

Mar 8th, 2023
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.10 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Plant_Discovery_03 {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.  
  7.         int number = Integer.parseInt(scanner.nextLine());
  8.  
  9.         HashMap<String, Integer> plants = new HashMap<>();
  10.         HashMap<String, List<Double>> ratings = new HashMap<>();
  11.  
  12.         while (number-- > 0) {
  13.             String[] input = scanner.nextLine().split("<->");
  14.             String plant = input[0];
  15.             int rarity = Integer.parseInt(input[1]);
  16.  
  17.             plants.put(plant, rarity);
  18.             ratings.putIfAbsent(plant, new ArrayList<>());
  19.         }
  20.  
  21.         String input;
  22.         while (!"Exhibition".equals(input = scanner.nextLine())) {
  23.             String[] tokens = input.split(": ");
  24.             String command = tokens[0];
  25.             String[] data = tokens[1].split(" - ");
  26.             String name = data[0];
  27.  
  28.             if (!plants.containsKey(data[0])) {
  29.                 System.out.println("error");
  30.                 continue;
  31.             }
  32.  
  33.             switch (command) {
  34.                 case "Rate": {
  35.                     double rating = Double.parseDouble(data[1]);
  36.                     ratings.get(name).add(rating);
  37.                     break;
  38.                 }
  39.                 case "Update": {
  40.                     int updatedRarity = Integer.parseInt(data[1]);
  41.                     plants.put(name, updatedRarity);
  42.                     break;
  43.                 }
  44.                 case "Reset": {
  45.                     ratings.get(name).clear();
  46.                     break;
  47.                 }
  48.                 default:
  49.                     System.out.println("error");
  50.             }
  51.         }
  52.  
  53.         System.out.println("Plants for the exhibition:");
  54.  
  55.  
  56. for (Map.Entry<String, Integer> entry : plants.entrySet()) {
  57.     String plant = entry.getKey();
  58.     int rarity = entry.getValue();
  59.     double averageRating = ratings.get(plant).stream().mapToDouble(Double::doubleValue).average().orElse(0.0);
  60.     System.out.println(String.format("- %s; Rarity: %d; Rating: %.2f", plant, rarity, averageRating));
  61. }
  62.  
  63.  
  64.     }
  65. }
Add Comment
Please, Sign In to add comment