Если при добавлении пары ключ-значение в Map оказывается, что там уже содержится такой ключ, ему в соответствие ставится новое значение.
В классе Employee метод equals() реализован таким образом, что равными считаются два объекта, содержащие одну и ту же ссылку на строку name (this.name == emp.name). Поэтому из двух объектов-ключей, содержащих ссылку на строку-константу "Chandler", в Map'е остаётся только один.
Поле count используется для подсчёта количества вызовов метода Employee.equals(). При работе с HashMap метод equals() вызывается относительно редко, например, когда хэш-код вновь добавляемого ключа совпадает с хэш-кодом ранее добавленного ключа - чтобы достоверно убедиться, что это одинаковые объекты (равенство хэш-кодов ещё не гарантирует равенство объектов). В данном примере такое происходит ровно один раз, при повторном добавлении Chandler'а.
Войдите чтобы поставить Нравится
Войдите чтобы прокомментировать