◆Java的数组变量就是看起来就是C语言的数组的名称,但其实Java的数组和C语言的数组区别还是很大的。
1.数组变量的赋值
数组变量赋值是管理权限的赋值
//数组变量,赋值改变(重要!)
int [] a1 = new int[10];
int [] a2 = a;//数组的话,相当于指针,赋值是管理权限的赋值。a2 和 a共同管理这个数组(这和单个变量不同,变量是所有者)
a2[1] = 1;
System.out.println(a1[1]);
a1[1]=3;
System.out.println(a1[1]);
System.out.println(a2[1]);
2.数组变量的比较
数组变量的比较,比较的是两个数组变量是否管理同一个数组
//数组变量的比较(重要!)
//数组变量的比较,比较的是两个数组变量是否管理同一个数组
int[] a3 = {1,2,3};
int[] a4 = {1,2,3};
System.out.println(a3==a4);//false a3和a4虽然内容一样,但是管理的是两个不同的数组,因此为false
int[] a5 = a3;
System.out.println(a3 == a5);//true a3和a5 管理同一个数组,因此为true
3.数组内容的复制
//数组内容的复制
int[] a3_copy = new int [a3.length];
for(int i=0;i<a3.length;i++) {
a3_copy[i] = a3[i];//逐个复制
}
4.比较数组内容是否相等
//比较数组内容是否相等,也要逐个比较,不能只比较数组变量
boolean isEqu = true;
for(int i=0;i<a3.length;i++) {
if(a3_copy[i] != a3[i]){//逐个复制
isEqu = false;
break;
}
}
if(isEqu) {
System.out.println("相等");
}
else
{
System.out.println("不相等");
}