如何在HashMap集合中存储自定义对象

743
2024/8/20 0:31:41
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

要在HashMap集合中存储自定义对象,需要确保自定义对象的类正确实现了hashCode()和equals()方法。这两个方法是用来计算对象的哈希码和比较对象是否相等的两个重要方法。

首先,创建一个自定义的对象类,例如:

public class CustomObject {
    private String key;
    private String value;

    // 构造方法
    public CustomObject(String key, String value) {
        this.key = key;
        this.value = value;
    }

    // hashCode方法
    @Override
    public int hashCode() {
        return Objects.hash(key, value);
    }

    // equals方法
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null || getClass() != obj.getClass())
            return false;
        CustomObject other = (CustomObject) obj;
        return Objects.equals(key, other.key) && Objects.equals(value, other.value);
    }
}

然后,创建一个HashMap集合并存储自定义对象:

public class Main {
    public static void main(String[] args) {
        HashMap<CustomObject, Integer> hashMap = new HashMap<>();

        CustomObject obj1 = new CustomObject("key1", "value1");
        CustomObject obj2 = new CustomObject("key2", "value2");

        hashMap.put(obj1, 1);
        hashMap.put(obj2, 2);

        System.out.println(hashMap.get(obj1)); // 输出 1
    }
}

在上面的示例中,我们创建了一个HashMap集合,并使用自定义对象CustomObject作为键,将对象和对应的值存储到HashMap中。通过自定义对象的hashCode方法和equals方法,可以确保HashMap能够正确地处理重复键和查找操作。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: HashMap和TreeMap有什么区别