1

ある Sunglasses オブジェクトのリストがあるとします...

  1. 4つの属性、色、形、スタイル、ブランド。
  2. 同一のものはありません。常に異なる4つの属性の組み合わせ

それらを取得する最速の方法は何ですか?

おもう:

  1. Sunglasses クラスの hashcode() メソッドをオーバーライドします (いずれも同一ではないため、一意にする必要があります)。
  2. 次に、各オブジェクトのハッシュコードをキーとして使用し、オブジェクト自体を値として使用して、それらをハッシュマップに入れます

手に入れたいガラスの色、形、スタイル、ブランドを正確に覚えているとします。

  1. 私が実装した hashcode メソッドでそれらを適用します。
  2. 次に、ハッシュマップから取得します。これにより、内容物をO(1)で取得できるようになります。

問題は、色しか知らない場合です。同じ色のすべてのメガネのリストを取得するにはどうすればよいですか?

4

2 に答える 2

0
  1. 4つの属性を保持する値クラスを作成し、すべてのフィールドを使用するハッシュコードとequalsメソッドを作成します。
  2. クラスを個別のフィールドではなく、サングラスのフィールドとして使用します(このように変更して別のフィールドを追加すると、どこでも変更されます)
  3. 値クラス->サングラスのハッシュマップを使用し、クエリを実行するときは、use map.get(value)で値オブジェクトを作成します
于 2012-06-03T05:04:38.317 に答える
0

HashMap<Color,Collection<Glasses>>他のデータ構造に加えて を構築します。

このマップは、基本的に属性のインデックスとして機能します。Color

他のデータ構造に眼鏡を追加または削除するときはいつでも、必ずこのカラー インデックスも更新してください。

于 2012-06-03T02:55:33.493 に答える