public class Person { public String name; public String phone; public String email; public Person(String name, String phone, String email) { this.name = name; this.phone = phone; this.email = email; } } _______________________________________________________________ Public class Phonebook { private final HashMap<String, ArrayList<Person>> entries = new HashMap<>(); public void add(String name, String phone, String mail) { if (entries.containsKey(name)) { ArrayList<Person> persons = entries.get(name); persons.add(new Person(name, phone, mail)); } else { ArrayList<Person> persons = new ArrayList<>(); persons.add(new Person(name, phone, mail)); entries.put(name, persons); } } Есть вот такой код. Конструктор в этом классе получается по умолчанию, значит. Если я правильно понимаю, то при создании объекта данного класса, создается мапа, у которой ключом является строка, значением по ключу является список объектов класса Person. В классе Phonebook есть метод add, который в качестве параметров принимает 3 строки, в нем идет проверка, содержится ли в мапе ключ (name) А вот далее непонятно ArrayList<Person> persons = entries.get(name); - как может присваиваться одно значение целому списку??