在 Java 中,可以将自定义对象作为 Map 的 Key,但必须满足以下条件:
1. 必须正确重写 hashCode() 和 equals() 方法
 
- 原因:Map(如HashMap)依赖这两个方法确定键的唯一性和存储位置。
- 未正确重写的风险: - 无法正确查找值:即使两个对象逻辑上相等,若 hashCode不同,会被视为不同的 Key。
- 重复 Key:若 equals未正确实现,逻辑相等的对象可能被同时存入 Map,破坏 Key 的唯一性。
 
- 无法正确查找值:即使两个对象逻辑上相等,若 
示例代码
public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}@Overridepublic int hashCode() {return Objects.hash(name, age); // 基于所有关键字段生成 hash}@Overridepublic boolean equals(Object obj) {