Помогите пожалуйста с проблемой. У меня есть код работающий, но некорректно. Я пытаюсь в коллекциях создавать сначала людей (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, "Petro", 26));
addCarToPerson(new Person(1, "Petro", 26), new Car("Audi", 1500, Car_Type.SUV));
addNewPerson(new Person(2,"Marta", 21));
addCarToPerson(new Person(2, "Marta", 21), new Car("Opel", 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);
}
}
}
}