ハッシュ関数は均一である必要があり、負荷係数が 1 未満であることが望ましいです。これは、ほとんどの場合、ハッシュ スロットごとに 1 つの要素を意味します。つまり、二分探索は必要ありません。
ハッシュ スロットごとに最大で 1 つの要素はありません。一部のバケットは、複数のキーを保持する必要があります。入力が事前に決定された制限された値のセット (つまり、完全なハッシュ) のみからのものでない限り、ハッシュ関数は、生成できる出力よりも多くの入力を処理する必要があります。衝突があります。これは、これと同じくらい一般的な実装では避けられません。ただし、優れたハッシュ関数は適切に分散されたハッシュを生成する必要があるため、ハッシュ スロットあたりの要素数は低く抑えられます。
明らかに、適切な位置を見つけるため、挿入が遅くなります。
優れたハッシュ関数と非縮退入力 (多くの要素が同じハッシュになるように設計された入力) を想定すると、バケットごとに常に少数のキーしか存在しません。このような二分探索木への挿入はそれほど大きなコストではなく、そのわずかなコストが別の場所で利益をもたらす可能性があります (検索は、リンク リストを使用した実装よりも高速になる場合があります)。また、縮退した入力の場合、ハッシュ マップは二分探索木に縮退します。これは、単純なリンク リストよりもはるかに優れています。