좌표를 키로 쓰는 HashMap을 만들었는데요, 분명 같은 값으로 넣고 꺼내는데 계속 null이 나와서 두 시간째 헤매고 있습니다.


Map<Point, String> m = new HashMap<>();
m.put(new Point(1, 2), "A");

String v = m.get(new Point(1, 2));
System.out.println(v); // null 이 찍힘


Point 클래스에는 equals를 아래처럼 제대로 재정의해뒀어요.


public boolean equals(Object o)
{
if (!(o instanceof Point)) return false;
Point p = (Point) o;
return this.x == p.x && this.y == p.y;
}


new Point(1,2).equals(new Point(1,2)) 찍어보면 true 나오거든요. 근데 왜 맵에서는 못 찾을까요? equals가 true면 당연히 찾아야 되는 거 아닌가요? 뭔가 빼먹은 게 있는 것 같은데 감이 안 잡히네요.