アイテムをハッシュに挿入すると、キーは物理メモリスペースにエンコードされるので、ルックアップ時間は非常に速くなりますか?つまり、一定のルックアップ時間。
2 に答える
3
参照の配列を使用することにより、ほぼ一定のルックアップ時間になります (わずかな量の衝突がある場合) Entry
。
アドレスの場所はGCによっていつでも変更できるため、Java はアドレスの場所を直接操作しません。
于 2012-12-11T16:18:32.920 に答える
0
ハッシュテーブルの考え方は、アイテムを配列に格納することです。インデックスはキーから非常に高速に計算されます(Javaでは、キーHashtable
のhashcode()
メソッドが呼び出され、インデックスを取得するために使用されます(テーブルの長さを法として)。 )。
テーブルがいっぱいでない場合、このインデックスのこのテーブルにはいくつかの要素(連鎖)があります。要素を探すことは、単にそれらのキーを渡されたキーと比較することです。
したがって、ほぼ空のテーブルの場合は一定の時間ですが、テーブルがいっぱいになると少し長くなります。これは、衝突により、より多くの比較を行う必要があるためです。
于 2012-12-11T16:20:06.313 に答える