要在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能夠正確地處理重復鍵和查找操作。