日期:2014-05-20  浏览次数:20691 次

关于java里面比较数组的问题
今天写代码的时候,遇到一个奇怪的问题,就是判断两个数组是否相等的时候如果写成“if(arrayA[i]   ==   arrayB[j])”的话,有的时候无法正常判断这两个数组元素是否相等,即使真的相等,也认为不相等,但是有的时候又可以正确判断(我在两个工程里面分别作了这种比较,发现在一个工程里面可以,而在另一个工程里面却不行),如果写成“if(arrayA[i].equals(arrayB[j]))”的话则可以正确判断出来,请问这两种写法区别在哪里呢?谢谢!

------解决方案--------------------
==是比引用 equals是比较内容。
不过我也不知道用在数组元素的时候是比的哪个。。
------解决方案--------------------
对象之间比较实际内容用equals(),这是几乎每个类都有的方法,不然有可能比较引用了.
------解决方案--------------------
equals()比较的是值是否相等,而==比较的是地址是否相等.