Java は HashMap のデフォルトのプローブ方法として何を使用しますか? リニアですか?チェインか何か?
1734 次
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 に答える