正しくオーバーライドする必要があります。クラスに以下を追記します。結果が両オブジェクトで等しくなるので、この状態であれば一致するキーがあった時、Mapから対応する値が取得されるようになります。管理したい場合、自作クラスをキーとして扱うことがあるかもしれません。ついてもケアしないといけません。そのまま使われるので、Mapに入っているキーと実際に使おうとしているキーのインスタンスが異なることから、返却されるハッシュ値も異なります。