Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Pr2 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<String, Integer> animalAndFood = new HashMap<>();
- Map<String, String> animalAndArea = new HashMap<>();
- String line = scanner.nextLine();
- while (!line.equals("Last Info")) {
- String[] arrLine = line.split(":");
- String command = arrLine[0];
- String name = arrLine[1];
- String food = arrLine[2];
- String area = arrLine[3];
- //map.put(key, map.get(key) + 1);
- switch (command) {
- case "Add":
- animalAndFood.putIfAbsent(name, 0);
- animalAndArea.putIfAbsent(name, area);
- animalAndFood.put(name, animalAndFood.get(name) + Integer.parseInt(food));
- break;
- case "Feed":
- if (animalAndFood.size() > 0 && animalAndArea.size() > 0) {
- if (animalAndFood.containsKey(name)) {
- animalAndFood.put(name, animalAndFood.get(name) - Integer.parseInt(food));
- if (animalAndFood.get(name) <= 0) {
- System.out.println(name + " was successfully fed");
- animalAndFood.remove(name);
- animalAndArea.remove(name);
- }
- }
- }
- break;
- }
- line = scanner.nextLine();
- }
- System.out.println("Animals:");
- animalAndFood.entrySet()
- .stream()
- .sorted((e1, e2) -> Integer.compare(e2.getValue(), e1.getValue()))
- .forEach(e -> System.out.println(String.format("%s -> %dg", e.getKey(), e.getValue())));
- System.out.println("Areas with hungry animals:");
- List<String> forCheck = new ArrayList<>(animalAndArea.values());
- Map<String, Integer> frequency = new HashMap<String, Integer>();
- for (String checkValue : forCheck) {
- Integer count = frequency.get(checkValue);
- frequency.put(checkValue, (count == null) ? 1 : count + 1);
- }
- frequency.entrySet()
- .stream()
- .sorted((e1, e2) -> {
- if (Integer.compare(e2.getValue(), e1.getValue()) == 0) {
- return e2.getKey().compareTo(e1.getKey());
- } else {
- return Integer.compare(e2.getValue(), e1.getValue());
- }
- })
- .filter(e -> e.getValue() > 0)
- .forEach(e -> System.out.println(String.format("%s : %d", e.getKey(), e.getValue())));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement