javaのcontainsValueはどのように機能しますか? 指定されたオブジェクトをマップ内の値と比較しますか? もしそうなら、なぜこれがうまくいかないのですか?
私は次のクラスを持っています:class Node{
Integer n;
Integer wt;
String v;
}
そして、このマッピングを使用します: Map map = new HashMap();
このコードは意図したとおりに動作しません: `
n = Integer.parseInt(st.nextToken());
wt = Integer.parseInt(st.nextToken());
depth = Integer.parseInt(st.nextToken());
set = "";
while(st.hasMoreTokens())
set = set+st.nextToken()+" ";
Node nd = new Node();
nd.n = n;
nd.wt = wt;
nd.v = set;
if(!map.containsValue((Object)nd)){
map.put(key,nd);
key = key+1;
}`
マッピングにはまだ重複する値があります。