Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package TextProcessing;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.TreeMap;
- public class exam2 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String input = scanner.nextLine();
- Map<String, Map<String, Integer>> AnimalLimitArea = new TreeMap<>();
- Map<String, Integer> AreaLimit = new LinkedHashMap<>();
- Map<String,Integer> AreaAnim = new LinkedHashMap<>();
- while (!input.equals("Last Info")) {
- String[] info = input.split(":");
- if (info[0].equals("Add")) {
- String name = info[1];
- Integer limit = Integer.parseInt(info[2]);
- String area = info[3];
- if (!AnimalLimitArea.keySet().contains(name)) {
- AnimalLimitArea.putIfAbsent(name, new TreeMap<>());
- AnimalLimitArea.get(name).putIfAbsent(area, limit);
- AreaAnim.putIfAbsent(area,1);
- } else {
- int oldLimit = AnimalLimitArea.get(name).get(area);
- AnimalLimitArea.get(name).put(area, oldLimit + limit);
- AreaAnim.put(area,AreaAnim.get(area)+1);
- }
- } else if (info[0].equals("Feed")) {
- String name = info[1];
- Integer feed = Integer.parseInt(info[2]);
- String area = info[3];
- if (AnimalLimitArea.keySet().contains(name)) {
- int Hungry = AnimalLimitArea.get(name).get(area) - feed;
- if (Hungry < 0) {
- System.out.println(String.format("%s was successfully fed", name));
- AnimalLimitArea.get(name).remove(area);
- } else {
- AnimalLimitArea.get(name).put(area, Hungry);
- AreaLimit.putIfAbsent(name, Hungry);
- }
- }
- input = scanner.nextLine();
- }
- }
- System.out.println("Animals");
- AreaLimit.entrySet().stream()
- .sorted(Map.Entry.<String, Integer>comparingByValue().reversed()
- .thenComparing(Map.Entry::getKey)).forEach(a -> {
- System.out.println(String.format("%s -> %dg", a.getKey(), a.getValue()));
- });
- System.out.println("Areas with hungry animals:");
- AreaAnim.entrySet().stream().sorted(Map.Entry.<String,Integer>comparingByValue().reversed())
- .forEach(a->{
- System.out.println(String.format("%s : %d",a.getKey(),a.getValue()));
- });
- }
- }
- // forEach(al->{
- // String name = al.getKey();
- // AreaLimit=al.getValue();
- // AreaLimit.entrySet().stream().sorted(Map.Entry.<String,Integer>comparingByValue());
- // }).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement