我觉得你的代码可能写的有点问题,我按照我理解的思路进行了更正(放在了末尾),希望能帮到你
1. == 比较好理解,数组使用==比较的是内存地址,题中两个数组是前后new出来的,在堆中是不同的内存地址,所以比较结果为false;
2.Arrays.equals(a, b),我们看这个方法的源码
package excel;
import org.apache.thrift.TException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Random;
public class Test {
public static void main(String[] args) throws TException, IOException {
int[] a = new int[8];
int[] b = new int[8];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - 1; j++) {
a[j] = new Random().nextInt(100);
if (a[j] == a[j + 1]) {
a[j] = new Random().nextInt(100);
}
}
Arrays.sort(a);
}
for (int j = 0; j < b.length; j++) {
for (int i = 0; i < b.length - 1; i++) {
b[i] = new Random().nextInt(100);
if (b[i] == b[i + 1]) {
b[i] = new Random().nextInt(100);
}
}
Arrays.sort(b);
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + " ");
}
System.out.println();
System.out.println(Arrays.equals(a, b));
System.out.println(a == b);
}
}
|