java.util.HashMapではまる一日。

1)http://www.techscore.com/tech/Java/Utility/1.html より。

「Hashtable」クラスはデータをキーと関連付けて記憶するクラスです。データの取得もキーを指定する事によって行います。1つのキーに対して記憶されるデータは1つです。同じキーに対して複数のデータを追加しようとすると、古いデータは上書きされます。ここでキーが同じであるというのは「equals」メソッドと「hashCode」メソッドによって判定されます。「equals」メソッドによって同じオブジェクトと判定され、かつ「hashCode」メソッドが同じハッシュ値を返す場合、キーは同じとみなされ古いデータは上書きされます。

改めて書いとこう。比較順番は1:equals(Object)2:hashCode()。equals(Object)だけじゃないのか・・・。独自でキーを作ったときは注意。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Hashtable.html#put(java.lang.Object, java.lang.Object)にあるみたいに、@seeにObject.equals(Object)が有ったら、これを内部で使ってるんだなとおもうじゃないか・・・ぐぅ(XX)
うむむーーーーー。j2se javadocからは読めないんですが・・・・。読み飛ばしたか・・・。

2)
 junitでテスト。
m=new HashMap();
m.put("a","1");
assertEquals((Object)"{a=1}",(Object)m);

全然だめだ・・・。