この前、ふと Object クラスの JavaDoc を見ていたら、こんな記述がありました。 できるかぎり、Object クラスで定義される hashCode メソッドは、異なるオブジェクトについては異なる整数値を返します。 Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle この「できるかぎり」って、どのぐらいなんでしょうか。 オブジェクト数に比例して、衝突していました。 さくっとコードを書いてみました*1。 結果は以下のグラフの通りです。 (一定数(横軸)のオブジェクトを生成し、ハッシュコードの衝突割合(縦軸)を調べました) オブジェクトが増えれば増えるほど、衝突確率が高まっていきます。 オブジェクトが100万個だと衝突確率は 1.46% でしたが、5,000万個だと 47