Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.64 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class FeedTheAnimals {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.  
  7.         String input = scanner.nextLine();
  8.  
  9.         Map<String, Integer> animals = new LinkedHashMap<>();
  10.         Map<String, List<String>> areas = new LinkedHashMap<>();
  11.  
  12.         while (!input.equals("Last Info")){
  13.             String[] data = input.split(":");
  14.  
  15.             String command = data[0];
  16.             String name = data[1];
  17.             int food = Integer.parseInt(data[2]);
  18.             String area = data[3];
  19.  
  20.             switch (command){
  21.                 case "Add":
  22.  
  23.                     if (!animals.containsKey(name)){
  24.                         animals.put(name, food);
  25.                         if (!areas.containsKey(area)) {
  26.                             areas.put(area, new ArrayList<>());
  27.                         }
  28.                         areas.get(area).add(name);
  29.                     } else {
  30.                         int newFood = animals.get(name) + food;
  31.                         animals.put(name, newFood);
  32.                     }
  33.  
  34.                     break;
  35.  
  36.                 case "Feed":
  37.  
  38.                     if (animals.containsKey(name)){
  39.                         animals.put(name, animals.get(name) - food);
  40.                         if (animals.get(name)<=0){
  41.                             System.out.printf("%s was successfully fed%n", name);
  42.                             animals.remove(name);
  43.                             areas.get(area).remove(name);
  44.                         }
  45.                     }
  46.  
  47.                     break;
  48.             }
  49.  
  50.             input = scanner.nextLine();
  51.         }
  52.  
  53.  
  54.         System.out.println("Animals:");
  55.  
  56.         animals.entrySet().stream().sorted((e1, e2) -> {
  57.             int sort = e2.getValue().compareTo(e1.getValue());
  58.  
  59.             if (sort ==0){
  60.                 sort = e1.getKey().compareTo(e2.getKey());
  61.             }
  62.  
  63.             return sort;
  64.         }).forEach(e -> System.out.printf("%s -> %dg%n", e.getKey(), e.getValue()));
  65.  
  66.         System.out.println("Areas with hungry animals:");
  67.  
  68.         areas.entrySet().stream().sorted((e1, e2) ->{
  69.             int sort = Integer.compare(e2.getValue().size(), e1.getValue().size());
  70.  
  71.             //if (sort == 0){
  72.             //    sort = e2.getKey().compareTo(e1.getKey());
  73.             //}
  74.             return sort;
  75.         }).forEach(e -> {
  76.             if (e.getValue().size()>=1){
  77.                 System.out.printf("%s : %d%n", e.getKey(), e.getValue().size());
  78.             }
  79.         });
  80.  
  81.         //System.out.println(animals);
  82.         //System.out.println(areas);
  83.  
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement