6

Java は HashMap のデフォルトのプローブ方法として何を使用しますか? リニアですか?チェインか何か?

4

1 に答える 1

8

私には連鎖しているように見えます。コード: (リンク)

...
724 /**
725 * 新しいエントリを作成します。
726*/
727 Entry(int h, K k, V v, Entry n) {
728 値 = v;
729次=n;
730 キー = k;
731 ハッシュ = h;
732 }
...

...
795 void addEntry(int ハッシュ、K キー、V 値、int バケットインデックス) {
796 エントリ e = テーブル [bucketIndex];
797 table[bucketIndex] = new Entry(ハッシュ、キー、値、e);
...

つまり、bucketIndex でエントリを取得し、「次の」フィールドとして既存のエントリを持つ新しいエントリに置き換えます (つまり、チェーンします)。

于 2008-11-06T02:53:50.543 に答える