2

たとえば、サイズ 100 の Hashmap を割り当て、100 個のバケットが作成された場合、Hashmap のパフォーマンスは低下しませんか? (モジュラーハッシュを実行すると、100個のバケットすべてにキーが均等に分散されないため)

Java はこの問題をどのように管理しますか? ハッシュマップのサイズとして 100 に近い素数をランダムに選択しますか?

4

1 に答える 1

1

sourcesでわかるように、次に大きい 2 のべき乗が選択されます (197 行目以降)。

       // Find a power of 2 >= initialCapacity
       int capacity = 1;
       while (capacity < initialCapacity)
           capacity <<= 1;

       this.loadFactor = loadFactor;
       threshold = (int)(capacity * loadFactor);
       table = new Entry[capacity];
于 2013-03-15T10:11:02.290 に答える