关于随机将100以内的数放进int数组中的问题
我用同样的方法做了两个随机放100以内的数入int数组中,用"=="和"Array.equals"两种方法进行检查为什么两个数组的元素相同,但是得到的结果均为false,为什么呀?求解。 你输出了两遍a数组...... 我觉得你的代码可能写的有点问题,我按照我理解的思路进行了更正(放在了末尾),希望能帮到你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;
int[] b = new int;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - 1; j++) {
a = new Random().nextInt(100);
if (a == a) {
a = 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 = new Random().nextInt(100);
if (b == b) {
b = new Random().nextInt(100);
}
}
Arrays.sort(b);
}
for (int i = 0; i < a.length; i++) {
System.out.print(a + " ");
}
System.out.println();
for (int i = 0; i < b.length; i++) {
System.out.print(b + " ");
}
System.out.println();
System.out.println(Arrays.equals(a, b));
System.out.println(a == b);
}
}
连帅帅 发表于 2021-9-10 11:02
我觉得你的代码可能写的有点问题,我按照我理解的思路进行了更正(放在了末尾),希望能帮到你
1. == 比较 ...
受教了,感谢解决问题并帮忙完善 巴巴鲁 发表于 2021-9-8 18:08
你输出了两遍a数组......
噢,对对,谢谢{:5_110:}
页:
[1]