Java tutorial
import java.util.HashMap; public class Main { public static void main(String[] args) { MyKey e1 = new MyKey(1); MyKey e2 = new MyKey(2); HashMap<MyKey, Integer> map = new HashMap<>(); map.put(e1, 1); map.put(e2, 2); System.out.println(map.get(e1)); System.out.println(map); e1.setValue(9); System.out.println(map.get(e1)); System.out.println(map); e1.setValue(2); System.out.println(map.get(e1)); System.out.println(map); MyKey e3 = new MyKey(2); System.out.println(map.get(e3)); } } class MyKey { private int n; public MyKey(int n) { this.n = n; } public void setValue(int n) { this.n = n; } @Override public int hashCode() { return n; } @Override public boolean equals(Object e) { if (this == e) return true; if (!(e instanceof MyKey)) return false; MyKey an = (MyKey) e; return n == an.n; } @Override public String toString() { return "MyKey [n=" + n + "]"; } }