0

一連のレコード (たとえば、ID、名前、および年齢フィールドを持つユーザー レコード) が与えられ、そのコレクションをビューに送信して単純なトラバーサルを行う必要がある場合。では、HashMap と HashSet の間で使用するのに適したコレクションはどれですか?またその理由は? 効率化のために User クラスで使用するハッシュコード生成コードは何ですか?

4

2 に答える 2

1

AHashSetはそれ自体が実装であるHashMapため、最終的にはそれほど大きな違いはありません。ただし、ユーザーを扱っているので、最終的にはUserIDでオブジェクトにアクセスする必要があると思います。

各ユーザーが一意のIDを持っていると仮定すると、IDをキーとして使用し、オブジェクトHashMap全体を値として使用できます。Userこれにより、特定のユーザーデータをトラバースしてアクセスできるようになります。

于 2012-09-28T06:50:24.590 に答える
1

HashMapとHahSetは、異なるデータ構造を使用してオブジェクトを格納します。

HashMapでは、オブジェクトをキーと値のペアで格納します

HashSetでは、キーのみをオブジェクトとして保存します。


それらの違いのいくつかを次に示します。


  1. HashSetは、Setインターフェイスの実装です。HashMapは、Mapインターフェースの実装です。
  2. HashSetストアのみの値。HashMapデータをキーと値のペアの形式で格納します。
  3. HashSetは重複する値/オブジェクトを許可しませんHashMapは重複する値/オブジェクトを許可しますが、重複するキーは許可しません。
  4. HashSetはハッシュマップよりも低速です。値は一意のキーに関連付けられているため、HashMapはハッシュセットよりも高速です
  5. HashSetでは、メンバーオブジェクトを使用して2つのオブジェクトで同じになる可能性のあるハッシュコード値を計算するため、equal()メソッドを使用して、2つのオブジェクトが異なることを意味するfalseが返された場合に等しいかどうかをチェックします。HashMapでは、ハッシュコード値はキーオブジェクトを使用して計算されます。 。
于 2012-09-28T07:10:11.117 に答える