2012-04-03 17 views
1

Javaハッシュマップで正しいバケットを見つける順序は何ですか?Javaハッシュマップで正しいバケットを見つける順序

hashmapの最初のバケットはhashcodeメソッドを使用して配置され、次にequalsメソッドを使用して繰り返します。私の質問は最初の部分ですので、目的のキーが存在するバケットを見つけるのは複雑です。

+2

ここですべての回答を見つけることができます。http://en.wikipedia.org/wiki/Hash_table(java HashMapでは「別個の連鎖」が使用されています)。 – jtahlborn

答えて

1

バケットを検索するのはO(1)です。ハッシュマップはハッシュコードを計算し、それを使ってバケットスロットにインデックスを付けます。

0

この実装は、ハッシュ関数が要素をバケット間で適切に分散させると仮定して、基本的な操作(getおよびput)に対して一定時間のパフォーマンスを提供します。コレクションビューの反復には、HashMapインスタンスの "容量"(バケットの数)+サイズ(キーと値のマッピングの数)に比例する時間が必要です。したがって、反復性能が重要な場合は、初期容量を高くしすぎる(または負荷係数が低すぎる)ように設定しないことが非常に重要です。

+2

"一定時間"の性能を提供しないので、 "償却された一定時間"の性能を提供します。 – jtahlborn

関連する問題