HashSetとVector

あれ?僕の記憶と違うのはー と思ったのはVectorの記憶?

import java.awt.Point;
import java.util.*;
public class Test {
	public static void main(String[] args) {
		Point p=new Point(0,0);
		HashSet<Point> ps=new HashSet<Point>();
		Vector<Point> ps_v=new Vector<Point>();
		System.out.println(Integer.toString(p.hashCode()));
		ps.add(p);
		ps_v.add(p);
		p.setLocation(0,1);
		//hashCodeは中身に依存
		System.out.println(Integer.toString(p.hashCode())); 
		//ps.add(p);
		//HashSet
		System.out.println(Boolean.toString(ps.contains(p)));
		//Vector
		System.out.println(Boolean.toString(ps_v.contains(p)));
	}
}

実行結果

0
-1106247680
false
true