Рассмотрит часть программы: - методJava HashMap - как получить оба элемент
HashMap<Object,Object> m1=new HashMap<Object,Object>();
Person p1=new Person("Raj","Sharma");
Person p2=new Person("Raj","Sharma");
m1.put(p1,"11");
m1.put(p2,"22");
Также Person класс заменяет хэш-код(), но не равный() метод
Что я знаете, что: поскольку обе имеют одинаковые ключи (p1 и p2 выдают один и тот же хэш-код), и, следовательно, они соответствуют одному и тому же индексу, поэтому после сохранения p1 в этом индексе, когда он пытается поставить p2 JVM, убедитесь, что оба имеют одинаковый хэш-код, поэтому снова хеширование сделано на p2, и создается новый индекс, и 22 получает этот индекс.
Теперь, если мы попытаемся извлечь элемент, используя клавишу Р1 или Р2,
String temp=(String)m1.get(p1); // 11
вернет 11 только то, как мы можем извлечь элемент 22 ??
P1 заменен на p2. Поэтому, когда вы получаете значение для этого. Это будет самое новое значение, которое помещено на карту – Krit
нет метода равенства в классе person, поэтому ключи p1 и p2 получат разные индексы ... – Ronaldo7