ジャワで。ユーザー定義オブジェクトとそれに関連する整数を保存したい。どのデータ型を使用すればよいですか? HashMap を試してみましたが、 equals() メソッドなしではオブジェクトを保存できないようです
2 に答える
2
私は HashMap を試しましたが、どうやら equals() メソッドなしではオブジェクトを保存できないようです
より正確には、次の 2 つの条件のいずれかを満たさないと、オブジェクトを Map のキーとして使用できません。
equals
とhashcode
、またはの両方をオーバーライドする- それらのどれもオーバーライドしません。
したがって、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 に答える