0

Помогите пожалуйста с проблемой. У меня есть код работающий, но некорректно. Я пытаюсь в коллекциях создавать сначала людей (addNewPerson), а затем к тем людям добавить машину (addCarToPerson). Так же у меня есть проверка, если нет такой человека, то машина не добавляется. Суть в том, что когда я создаю человека его будет видно, но при создании машины у меня почему-то говорит, что такого человека не существует. В чем моя ошибка? Спасибо

package package_one;

import java.util.Map; import java.util.*;

public class Main {

static Map<Person, List<Car>> map = new HashMap<>();

public static void main(String[] args) {

addNewPerson(new Person(1, &quot;Petro&quot;, 26));
addCarToPerson(new Person(1, &quot;Petro&quot;, 26), new Car(&quot;Audi&quot;, 1500, Car_Type.SUV));

addNewPerson(new Person(2,&quot;Marta&quot;, 21));
addCarToPerson(new Person(2, &quot;Marta&quot;, 21), new Car(&quot;Opel&quot;, 1100, Car_Type.SEDAN));

printMap(map);

}

public static void addNewPerson(Person person) { map.put(person, new ArrayList<>()); }

public static void addCarToPerson(Person person, Car car) { if (map.containsKey(person)) { final List<Car> cars = map.get(person); cars.add(car); System.out.println(String.format("Car is added for person", car.getName(), person.getName())); } else { System.out.println("No such person " + person.getName()); } }

public static void deleteCarFromPerson(Person person, Car car) { if (map.containsKey(person)) { final List<Car> cars = map.get(person); cars.remove(car); System.out.println(); } else { System.out.println("No such person: " + person.getName()); } }

public static void printMap(Map<Person, List<Car>> map) { final Set<Map.Entry<Person, List<Car>>> set = map.entrySet(); for (Map.Entry<Person, List<Car>> entry : set) { System.out.println(entry.getKey() + ":"); final List<Car> cars = entry.getValue(); for (Car car : cars) { System.out.println("\t" + car); } } }

}

Dmitry Chernyak
  • 375
  • 1
  • 3
  • 10

0 Answers0