fantacyleo 发表于 2014-7-16 21:26
你覆写的equals方法,比较的还是数组地址是否相同,而不是数组元素是否相等。Java中,数组,哪怕是元素为基 ...
待解封的小刀 发表于 2014-7-16 22:19
也就是不能把数组看成对象中的成员。 数组只能看作是对象。
fantacyleo 发表于 2014-7-16 22:25
这两者没有关联。你的代码中,数组当然是对象成员,但它本身也是对象,arr是引用类型变量。如果你在类中 ...
待解封的小刀 发表于 2014-7-16 22:38
那怎么做 我的思想没错啊 这个用equals 怎么比较呢? 是不是equals只能比较基本类型?比较引用的就变成 ...
icris 发表于 2014-7-16 22:51
查到一个数组比较方法
return Arrays.equals(this.arr, d.arr);
待解封的小刀 发表于 2014-7-16 23:05
我有一点不明白 这equals 本来是比较对象是否相同的 也就是地址;但是我已经覆盖了这个功能啊 怎么变不了 ...
icris 发表于 2014-7-16 23:23
你重写了自己的 Demo 里的 equals ,但是返回值是两个数组的 == 运算,数组比较相等是不能用 == 的,而且 ...
待解封的小刀 发表于 2014-7-17 07:56
哦 我明白了 也就是return this.arr==b.arr 返回的还是地址值的比较是否正确。
大神 我把return改成arra ...
icris 发表于 2014-7-17 08:10
Arrays.equals 是静态方法可以直接用,A 大写,我试了一下结果是 true
icris 发表于 2014-7-17 08:10
Arrays.equals 是静态方法可以直接用,A 大写,我试了一下结果是 true
待解封的小刀 发表于 2014-7-17 08:45
class Demo
{
private int[] arr;
待解封的小刀 发表于 2014-7-17 08:45
class Demo
{
private int[] arr;
icris 发表于 2014-7-17 09:02
想起来了,在最上面加上
import java.util.Arrays;
icris 发表于 2014-7-17 08:58
从源码复制的,真的不能用就复制一下吧…
人心如水 发表于 2014-7-17 09:22
比较的是两个对象,两地址值。年纪是具体指,比较的是值
icris 发表于 2014-7-17 08:58
从源码复制的,真的不能用就复制一下吧…
待解封的小刀 发表于 2014-7-17 09:53
我把你的方法 运行了一遍 为什么没结果呢?
我简写了下 没结果 但是编译没出错
fantacyleo 发表于 2014-7-16 22:25
这两者没有关联。你的代码中,数组当然是对象成员,但它本身也是对象,arr是引用类型变量。如果你在类中 ...
待解封的小刀 发表于 2014-7-17 11:21
也就是 == 这个比较符 在int 型 这些基本的数据类型中 比较的是内容 而== 在引用数据类型 比较的就是 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |