两个数组比较看看结果
简单代码如下,究竟会返回什么结果呢?
package com.hehe;
public class Main {
public static void main(String[] args) {
double[] d1={1,2,3,5};
double[] d2={1,2,3,5};
System.out.println(d1==d2);
System.out.println(d1.equals(d2));
}
}
是不是出乎了你的意料呢?呵呵…………
解答:array属于对象,对象使用==返回false. 。对象使用equals 对比的是内存地址。两个arrays内存地址不一样。值一样。
详细一点的来说:
"=="是判断两个变量或实例是不是指向同一个内存空间。
"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。
"equals"在JAVA中是一个方法。
"=="在JAVA中只是一个运算符合。
那么比较两个数组里面的内容是否相等呢?
@Test
public void test01(){
double[] d1={1,2,3,5};
double[] d2={1,2,3,5};
boolean flag = Arrays.equals(d1, d2);
System.out.println(flag);
}
看结果:
不相等的也来一个吧:
@Test public void test01(){ double[] d1={1,2,3,5,6}; double[] d2={1,2,3,5}; boolean flag = Arrays.equals(d1, d2); System.out.println(flag); }
结果: