2017-02-09 5 views
0

私の理解が正しいかどうか誰かが見直してくれますか?ハッシュマップの内部実装を理解する

値を入力する際に​​、バケットを見つけたハッシュコードに基づいてキーのハッシュコードが生成され、キー値のペアが格納されます。 キーを渡す値を取得している間に、そのハッシュコードが生成され、このハッシュコードを使用して、キー値が格納されたバケットを見つけます。そして値が返されます。

2 diffキーが同じハッシュコードを持っている場合、キーの値を取得している間に(ハッシュコードがキーの生成中に生成される)ハッシュコードがバケットに到達するために使用されていることを正しく理解していますか?そしてequalsメソッドを使って値を取得しますか?

+2

はい、正しいと思います。 –

+1

関連項目:[Java HashMapは同じハッシュコードを持つ異なるオブジェクトをどのように扱うのですか?](http://stackoverflow.com/questions/6493605/how-does-a-java-hashmap-handle-different-objects-with同じハッシュコード/ 6493946#6493946) – Jesper

答えて

0

あなたは正しく理解しています。バケットは、ハッシュコードを計算し、ハッシュマップ内のすべてのオブジェクトに対してequalsを使用して比較しようとすると、バケットが高速であるため、パフォーマンスを向上させるために使用されます。大規模なセットで作業する場合、パフォーマンスのメリットが顕著になります。

関連する問題