如何在HashMap集合中存儲(chǔ)自定義對(duì)象

小樊
87
2024-08-19 23:33:33
欄目: 云計(jì)算

要在HashMap集合中存儲(chǔ)自定義對(duì)象,需要確保自定義對(duì)象的類(lèi)正確實(shí)現(xiàn)了hashCode()和equals()方法。這兩個(gè)方法是用來(lái)計(jì)算對(duì)象的哈希碼和比較對(duì)象是否相等的兩個(gè)重要方法。

首先,創(chuàng)建一個(gè)自定義的對(duì)象類(lèi),例如:

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

    // 構(gòu)造方法
    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);
    }
}

然后,創(chuàng)建一個(gè)HashMap集合并存儲(chǔ)自定義對(duì)象:

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
    }
}

在上面的示例中,我們創(chuàng)建了一個(gè)HashMap集合,并使用自定義對(duì)象CustomObject作為鍵,將對(duì)象和對(duì)應(yīng)的值存儲(chǔ)到HashMap中。通過(guò)自定義對(duì)象的hashCode方法和equals方法,可以確保HashMap能夠正確地處理重復(fù)鍵和查找操作。

0