SHARE
TWEET

Untitled

MartinGeorgiev Apr 18th, 2019 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package TextProcessing;
  2.  
  3. import java.util.LinkedHashMap;
  4. import java.util.Map;
  5. import java.util.Scanner;
  6. import java.util.TreeMap;
  7.  
  8. public class exam2 {
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.  
  12.         String input = scanner.nextLine();
  13.  
  14.         Map<String, Map<String, Integer>> AnimalLimitArea = new TreeMap<>();
  15.         Map<String, Integer> AreaLimit = new LinkedHashMap<>();
  16.         Map<String,Integer> AreaAnim = new LinkedHashMap<>();
  17.         while (!input.equals("Last Info")) {
  18.             String[] info = input.split(":");
  19.             if (info[0].equals("Add")) {
  20.                 String name = info[1];
  21.                 Integer limit = Integer.parseInt(info[2]);
  22.                 String area = info[3];
  23.                 if (!AnimalLimitArea.keySet().contains(name)) {
  24.                     AnimalLimitArea.putIfAbsent(name, new TreeMap<>());
  25.                     AnimalLimitArea.get(name).putIfAbsent(area, limit);
  26.                     AreaAnim.putIfAbsent(area,1);
  27.                 } else {
  28.                     int oldLimit = AnimalLimitArea.get(name).get(area);
  29.                     AnimalLimitArea.get(name).put(area, oldLimit + limit);
  30.                     AreaAnim.put(area,AreaAnim.get(area)+1);
  31.                 }
  32.             } else if (info[0].equals("Feed")) {
  33.                 String name = info[1];
  34.                 Integer feed = Integer.parseInt(info[2]);
  35.                 String area = info[3];
  36.                 if (AnimalLimitArea.keySet().contains(name)) {
  37.                     int Hungry = AnimalLimitArea.get(name).get(area) - feed;
  38.                     if (Hungry < 0) {
  39.                         System.out.println(String.format("%s was successfully fed", name));
  40.                         AnimalLimitArea.get(name).remove(area);
  41.                     } else {
  42.                         AnimalLimitArea.get(name).put(area, Hungry);
  43.                         AreaLimit.putIfAbsent(name, Hungry);
  44.                     }
  45.  
  46.                 }
  47.  
  48.  
  49.                 input = scanner.nextLine();
  50.             }
  51.         }
  52.         System.out.println("Animals");
  53.  
  54.         AreaLimit.entrySet().stream()
  55.                 .sorted(Map.Entry.<String, Integer>comparingByValue().reversed()
  56.                         .thenComparing(Map.Entry::getKey)).forEach(a -> {
  57.             System.out.println(String.format("%s -> %dg", a.getKey(), a.getValue()));
  58.         });
  59.         System.out.println("Areas with hungry animals:");
  60.         AreaAnim.entrySet().stream().sorted(Map.Entry.<String,Integer>comparingByValue().reversed())
  61.                 .forEach(a->{
  62.                     System.out.println(String.format("%s : %d",a.getKey(),a.getValue()));
  63.                 });
  64.  
  65.  
  66.     }
  67. }
  68.  
  69. //    forEach(al->{
  70. //        String name = al.getKey();
  71. //        AreaLimit=al.getValue();
  72. //        AreaLimit.entrySet().stream().sorted(Map.Entry.<String,Integer>comparingByValue());
  73. //        }).
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top