在Java中,如果两个对象的equals()方法返回true,则它们被认为是相等的。但是,如果它们的哈希码不同,则它们将被存储在HashMap中的不同桶中。 如果您想获取具有相等但哈希码不同的对象的值,可以使用get()方法。该方法将使用equals()方法来查找具有相等键的值,而不考虑哈希码。 例如,假设您有两个具有相等但哈希码不同的对象: ``` Person p1 = new Person("John", 25); Person p2 = new Person("John", 25); ``` 您可以将它们作为键存储在HashMap中: ``` Map<Person, String> map = new HashMap<>(); map.put(p1, "Value 1"); map.put(p2, "Value 2"); ``` 现在,如果您想获取具有相等键的值,可以使用get()方法: ``` String value1 = map.get(p1); String value2 = map.get(p2); ``` 在这种情况下,value1将是“Value 2”,因为它是最后一个插入到HashMap中的值。