gpt4 book ai didi

Java TreeMap containsKey 总是返回 true?

转载 作者:行者123 更新时间:2023-11-30 01:38:46 26 4
gpt4 key购买 nike

我正在编写一个使用 TreeMap 接口(interface)的 Java 程序,但遇到 containsKey 问题。即使我给 containsKey 一些我确定不在 TreeMap 中的东西,它也会返回 true。

这可能是什么原因造成的?

提前非常感谢。

--

编辑:我正在编写一个程序来计算文本文件中单词的出现次数。这些单词被解析,每个单词都是一个类的新实例。在这些类中,equals 和 hashCode 方法被重写,因为即使单词是不同的对象,也需要将它们视为相等。

“文本”字段是一个包含单词文本的字符串。

public boolean equals(Object obj){   
Word temp = ((Word)obj);
return this.text.equals(temp.text);
}

public int hashCode(){
return this.text.hashCode();
}

public int compareTo (Object x) {
Word temp = ((Word)x);

if(this.text.compareTo(temp.text) < 0){
return -1;
}
else if (this.text.equals(temp.text)){
return 0;
}
else {
return 1;
}
}

最佳答案

我的猜测是,您使用的 key 类型的 equals 实现不正确(也可能是 hashCode),或者比较器不一致与等于。我想不出任何其他原因。

如果您可以制作一个简短但完整的程序来演示该问题,我们就可以确认这一点。

关于Java TreeMap containsKey 总是返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1828731/

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