在java中比较对象失败

在java中比较对象失败,java,equals,Java,Equals,我刚刚开始使用Java,试图通过重写equals方法来比较两个对象。我已经调试了很长一段时间,试图理解为什么它总是返回false 我已经把它删去,让它真正清楚。正如您在图中所看到的,在else if条件下,一切都匹配。。到底为什么它是假的 数组之间不存在==关系 您需要的是使用array.equals。或者,在你的情况下!Arrays.equals,用于c1和c2。数组之间没有==关系 您需要的是使用array.equals。或者,在你的情况下!array.equals,用于c1和c2。而不是

我刚刚开始使用Java,试图通过重写equals方法来比较两个对象。我已经调试了很长一段时间,试图理解为什么它总是返回false

我已经把它删去,让它真正清楚。正如您在图中所看到的,在else if条件下,一切都匹配。。到底为什么它是假的

数组之间不存在==关系

您需要的是使用array.equals。或者,在你的情况下!Arrays.equals,用于c1和c2。

数组之间没有==关系

您需要的是使用array.equals。或者,在你的情况下!array.equals,用于c1和c2。

而不是

if(c1 != c2 || h1 != h2)
使用

用于比较数组,因为在您的情况下,c1和c2是数组,您应该使用它。

而不是

if(c1 != c2 || h1 != h2)
使用


用于比较数组,因为在您的情况下c1和c2是数组,您应该使用它。

c1和c2是对象,否则如果c1!=c2 | | h1!=你可以比较参考资料。您应该使用数组。等式c1、c2和c2都是对象,否则ifc1!=c2 | | h1!=你可以比较参考资料。您应该使用数组。equalsc1、c2

问题在于如何比较两个字符数组。使用Arrays.equalsc1,c2。

问题在于如何比较两个字符数组。使用Arrays.equalsc1,c2。

您只是通过引用比较字符。。。。按fge建议使用equals您只是通过引用比较字符。。。。使用等于fge建议我不敢相信我错过了。。问题是,在添加数组之前,我只是简单地比较了失败的字符串。。作为一个C用户,我不习惯这样做哈哈。谢谢!我真不敢相信我错过了。。问题是,在添加数组之前,我只是简单地比较了失败的字符串。。作为一个C用户,我不习惯这样做哈哈。谢谢!
if(!Arrays.equals(c1,c2) || h1 != h2)