たとえば、サイズ 100 の Hashmap を割り当て、100 個のバケットが作成された場合、Hashmap のパフォーマンスは低下しませんか? (モジュラーハッシュを実行すると、100個のバケットすべてにキーが均等に分散されないため)
Java はこの問題をどのように管理しますか? ハッシュマップのサイズとして 100 に近い素数をランダムに選択しますか?
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];