0

ジャワで。ユーザー定義オブジェクトとそれに関連する整数を保存したい。どのデータ型を使用すればよいですか? HashMap を試してみましたが、 equals() メソッドなしではオブジェクトを保存できないようです

4

2 に答える 2

2

私は HashMap を試しましたが、どうやら equals() メソッドなしではオブジェクトを保存できないようです

より正確には、次の 2 つの条件のいずれかを満たさないと、オブジェクトを Map のキーとして使用できません。

  • equalshashcode、またはの両方をオーバーライドする
  • それらのどれもオーバーライドしません。

したがって、2 番目の条件に従って equals メソッドを使用しなくても、オブジェクトをキーとして簡単に使用できます。

ただし、新しく作成されたオブジェクトに基づいてキーを見つけたい場合は、最初の条件に従うことをお勧めします。メソッドのデフォルトの実装では、コンテンツ自体ではなく、オブジェクトの参照値equalsを比較するためです。

于 2012-12-23T17:43:16.943 に答える
0

ハッシュ マップに固執する必要があります。すべてのケースで問題なく機能します。

これは、ユーザーによって定義されたクラスです

   public class UserDefinedObject(){
    }

そして、これがHashMapでのこのクラスの使用法です

import java.util.HashMap; 
import java.util.Map;

public class Main {

    public static void main(String[] args) {
        Map<UserDefinedObject, Integer> stuff = new HashMap<UserDefinedObject, Integer>();
        UserDefinedObject userDefinedObject = new UserDefinedObject();
        stuff.put(userDefinedObject, 1);
        System.out.println(stuff.get(userDefinedObject));
    } 
}
于 2012-12-24T02:11:24.110 に答える