特定のクラスをキーにしたマップを作成したい。私が遭遇した問題は、このクラスにはポインターが含まれているため、HashMap を使用するとハッシュするときにこのアドレスが使用されることです (以下のコードを参照)。アドレスではなく実際の値を比較するにはどうすればよいですか、または同じ結果を達成するために使用できる他のコンテナがありますか?
import java.util.*;
public class Main {
public static void main(String args[]) {
class Foo {
public Foo(String a) {s = a;}
public String s;
}
HashMap<Foo,Integer> a = new HashMap<Foo,Integer>();
a.put(new Foo("test"), 1);
System.out.println(a.get(new Foo("test")));
}
}
これは出力しますnull