Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.Scanner;
- public class Animal {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<String, Integer> livingArea = new LinkedHashMap<>();
- Map<String, Animal1> animals = new LinkedHashMap<>();
- String input;
- while (!"EndDay".equals(input = scanner.nextLine())) {
- String[] tokens = input.split(":\\s+|-");
- String name = tokens[1];
- if (tokens[0].equals("Add")) {
- if (!animals.containsKey(name)) {
- animals.put(name, new Animal1(name, Integer.parseInt(tokens[2]), tokens[3]));
- livingArea.putIfAbsent(tokens[3], 0);
- livingArea.put(tokens[3], livingArea.get(tokens[3]) + 1);
- } else {
- animals.get(name).setFoodNeeded(Integer.parseInt(tokens[2]));
- }
- } else if (tokens[0].equals("Feed")) {
- if (animals.containsKey(name)) {
- animals.get(name).reduceFood(Integer.parseInt(tokens[2]));
- if (animals.get(name).dontNeedFood()) {
- String livingAreas = animals.get(name).areaLiving;
- animals.remove(name);
- livingArea.put(livingAreas, livingArea.get(livingAreas) - 1);
- System.out.println(name + " was successfully fed");
- if (livingArea.get(livingAreas) <= 0) {
- livingArea.remove(livingAreas);
- }
- }
- }
- }
- }
- System.out.println("Animals:");
- animals.forEach((key, value) -> System.out.printf(" %s -> %dg\n", key, value.foodNeeded));
- System.out.println("Areas with hungry animals:");
- livingArea.forEach((key, value) -> System.out.printf(" %s: %d\n", key, value));
- }
- static class Animal1 {
- String name;
- int foodNeeded;
- String areaLiving;
- public Animal1(String name, int foodNeeded, String areaLiving) {
- this.name = name;
- this.foodNeeded = foodNeeded;
- this.areaLiving = areaLiving;
- }
- public void setFoodNeeded(int food) {
- this.foodNeeded += food;
- }
- public void reduceFood(int quantity) {
- this.foodNeeded -= quantity;
- }
- public boolean dontNeedFood() {
- return this.foodNeeded <= 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment