borovaneca

Animals

Apr 2nd, 2023
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.59 KB | None | 0 0
  1. import java.util.LinkedHashMap;
  2. import java.util.Map;
  3. import java.util.Scanner;
  4.  
  5. public class Animal {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.  
  10.         Map<String, Integer> livingArea = new LinkedHashMap<>();
  11.         Map<String, Animal1> animals = new LinkedHashMap<>();
  12.  
  13.  
  14.         String input;
  15.         while (!"EndDay".equals(input = scanner.nextLine())) {
  16.             String[] tokens = input.split(":\\s+|-");
  17.  
  18.             String name = tokens[1];
  19.             if (tokens[0].equals("Add")) {
  20.                 if (!animals.containsKey(name)) {
  21.                     animals.put(name, new Animal1(name, Integer.parseInt(tokens[2]), tokens[3]));
  22.                     livingArea.putIfAbsent(tokens[3], 0);
  23.                     livingArea.put(tokens[3], livingArea.get(tokens[3]) + 1);
  24.                 } else {
  25.                     animals.get(name).setFoodNeeded(Integer.parseInt(tokens[2]));
  26.                 }
  27.             } else if (tokens[0].equals("Feed")) {
  28.                 if (animals.containsKey(name)) {
  29.                     animals.get(name).reduceFood(Integer.parseInt(tokens[2]));
  30.                     if (animals.get(name).dontNeedFood()) {
  31.                         String livingAreas = animals.get(name).areaLiving;
  32.                         animals.remove(name);
  33.                         livingArea.put(livingAreas, livingArea.get(livingAreas) - 1);
  34.                         System.out.println(name + " was successfully fed");
  35.                         if (livingArea.get(livingAreas) <= 0) {
  36.                             livingArea.remove(livingAreas);
  37.                         }
  38.                     }
  39.                 }
  40.             }
  41.         }
  42.         System.out.println("Animals:");
  43.         animals.forEach((key, value) -> System.out.printf(" %s -> %dg\n", key, value.foodNeeded));
  44.         System.out.println("Areas with hungry animals:");
  45.         livingArea.forEach((key, value) -> System.out.printf(" %s: %d\n", key, value));
  46.     }
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.     static class Animal1 {
  54.         String name;
  55.         int foodNeeded;
  56.         String areaLiving;
  57.  
  58.         public Animal1(String name, int foodNeeded, String areaLiving) {
  59.             this.name = name;
  60.             this.foodNeeded = foodNeeded;
  61.             this.areaLiving = areaLiving;
  62.         }
  63.  
  64.         public void setFoodNeeded(int food) {
  65.             this.foodNeeded += food;
  66.         }
  67.  
  68.         public void reduceFood(int quantity) {
  69.             this.foodNeeded -= quantity;
  70.         }
  71.  
  72.         public boolean dontNeedFood() {
  73.             return this.foodNeeded <= 0;
  74.         }
  75.     }
  76. }
  77.  
Advertisement
Add Comment
Please, Sign In to add comment