我很困惑,因为我需要我的数组与另一个数组相等,但是我不知道如何比较它们而不丢失它们的值
答案 0 :(得分:2)
如果两个根都为空,则根据您尝试对第二个if条件执行的操作,将得到不希望的结果。
如果两个根都为null,则您想返回true,但是返回false。您可以只使用一个if语句
if(thisRoot == null || otherRoot == null){
return thisRoot == null && otherRoot == null;
}
如何比较两个节点的数据存在更大的问题。
thisRoot.getData() != otherRoot.getData()
这个比较不是我想您要的。相反,您应该为数据对象重写equals方法,并改为使用它进行比较
答案 1 :(得分:1)
您的条件顺序会导致问题。
if (thisRoot == null || otherRoot == null) {
return false;
}
if (thisRoot == null && otherRoot == null) {
return true;
}
即使两个分支均为true
,第一个条件也将求值为return false
(并导致null
)。
您应该首先评估两个分支是否均为null
;之后,您可以检查其中只有一个是null
的情况。