Advertisement
mirozspace

Pr2_1804_80_100

Apr 23rd, 2019
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.83 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Pr2 {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.  
  7.         Map<String, Integer> animalAndFood = new HashMap<>();
  8.         Map<String, String> animalAndArea = new HashMap<>();
  9.  
  10.         String line = scanner.nextLine();
  11.         while (!line.equals("Last Info")) {
  12.             String[] arrLine = line.split(":");
  13.  
  14.             String command = arrLine[0];
  15.             String name = arrLine[1];
  16.             String food = arrLine[2];
  17.             String area = arrLine[3];
  18.  
  19.             //map.put(key, map.get(key) + 1);
  20.  
  21.             switch (command) {
  22.                 case "Add":
  23.                     animalAndFood.putIfAbsent(name, 0);
  24.                     animalAndArea.putIfAbsent(name, area);
  25.                     animalAndFood.put(name, animalAndFood.get(name) + Integer.parseInt(food));
  26.                     break;
  27.                 case "Feed":
  28.                     if (animalAndFood.size() > 0 && animalAndArea.size() > 0) {
  29.                         if (animalAndFood.containsKey(name)) {
  30.                             animalAndFood.put(name, animalAndFood.get(name) - Integer.parseInt(food));
  31.                             if (animalAndFood.get(name) <= 0) {
  32.                                 System.out.println(name + " was successfully fed");
  33.                                 animalAndFood.remove(name);
  34.                                 animalAndArea.remove(name);
  35.                             }
  36.                         }
  37.                     }
  38.                     break;
  39.             }
  40.             line = scanner.nextLine();
  41.         }
  42.         System.out.println("Animals:");
  43.  
  44.         animalAndFood.entrySet()
  45.                 .stream()
  46.                 .sorted((e1, e2) -> Integer.compare(e2.getValue(), e1.getValue()))
  47.                 .forEach(e -> System.out.println(String.format("%s -> %dg", e.getKey(), e.getValue())));
  48.  
  49.         System.out.println("Areas with hungry animals:");
  50.  
  51.  
  52.         List<String> forCheck = new ArrayList<>(animalAndArea.values());
  53.         Map<String, Integer> frequency = new HashMap<String, Integer>();
  54.  
  55.         for (String checkValue : forCheck) {
  56.             Integer count = frequency.get(checkValue);
  57.             frequency.put(checkValue, (count == null) ? 1 : count + 1);
  58.         }
  59.  
  60.         frequency.entrySet()
  61.                 .stream()
  62.                 .sorted((e1, e2) -> {
  63.                     if (Integer.compare(e2.getValue(), e1.getValue()) == 0) {
  64.                         return e2.getKey().compareTo(e1.getKey());
  65.                     } else {
  66.                         return Integer.compare(e2.getValue(), e1.getValue());
  67.                     }
  68.                 })
  69.                 .filter(e -> e.getValue() > 0)
  70.                 .forEach(e -> System.out.println(String.format("%s : %d", e.getKey(), e.getValue())));
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement