intとSetデータ構造を含むSetObという名前の単純なプライベート クラスを定義しました。「メイン」メソッドにSetObをキーとして、Integer を値として持つ HashMap があります。メイン メソッドでわかるように、HashMap にSetObインスタンスをフィードし、まったく同じ値を持つインスタンスを探すと、「null」が返されます。これは、HashMap のキーとしてSetObのような独自の定義済みデータ構造を使用する前に、かなりの回数発生しました。誰かが私に欠けているものを指摘してもらえますか? SetOb クラスのコンストラクターでは、引数として渡された Set をコピーすることに注意してください。
public class Solution {
public static Solution sample = new Solution();
private class SetOb {
public int last;
public Set<Integer> st;
public SetOb(int l , Set<Integer> si ){
last = l;
st = new HashSet<Integer>(si);
}
}
public static void main(String[] args) {
Map<SetOb, Integer> m = new HashMap< SetOb, Integer>();
Set<Integer> a = new HashSet<Integer>();
for(int i =0; i<10; i++){
a.add(i);
}
SetOb x = sample.new SetOb(100, a);
SetOb y = sample.new SetOb(100, a);
m.put(x,500);
Integer val = m.get(y);
if(val!= null) System.out.println("Success: " + val);
else System.out.println("Failure");
}
}