gpt4 book ai didi

java - HashSet 包含方法,奇怪的行为

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:40:44 25 4
gpt4 key购买 nike

<分区>

这是我的代码:

public class testGui {



public static void main(String[] arg){
class TESTS{
String t;

public TESTS(String t){
this.t = t;
}

@Override
public boolean equals(Object x){
System.out.println("My method is called...");
if(x instanceof TESTS){
TESTS zzz = (TESTS) x;
return zzz.t.compareTo(t)==0;
}
else return false;
}
}
HashSet<TESTS> allItems = new HashSet<TESTS>();
allItems.add(new TESTS("a"));
allItems.add(new TESTS("a"));
System.out.println(allItems.contains(new TESTS("a")));
}

}

我不明白为什么 hashset contains 方法没有像他们的规范中提到的那样调用我的 equals 方法:

More formally, adds the specified element, o, to this set if this set contains no element e such that (o==null ? e==null : o.equals(e))

我的代码返回 false 并且没有进入我的 equals 方法。

非常感谢您的回答!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com