数组
一、数组赋值基本机制
1、与基本类型赋值比较:
基本类型赋值是值的拷贝,相互赋值之后,变量改变不会影响对方
但是数组赋值,两者是地址的传递,也就是说两个相互赋值的数组地址相同
如果一方的值改变,那么另一方也会改变,因为改变的是地址。
2、数组拷贝:具有独立空间
使用new 重新定义空间,然后遍历赋值,两个数组地址独立就不会相互影响
3、数组反转(1、利用两个数组 2、一个数组组内交换,交换次数为arr.lenght/2)
二、数组长度改变
1、添加(扩容):定义一个新数组,长度加一,赋值后,再将原来的数组指向新赋值的数组;
2、删除(缩减):同样,定义新数组,然后赋值,最后再将新数组赋值到原来的数组中,新数组销毁;
三、排序
1、内部排序(冒泡排序)
public void ArrayPop(){
int arr[] = {21,54,1,5,78,123,34};
int temp = 0;
for (int i = 0; i < arr.length-1; i++) {
for (int j = 0; j < arr.length-i-1 ; j++) {
if (arr[j] > arr[j+1]){
temp = arr[j];
arr[j]=arr[j+1];
arr[j+1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i] + " ");
}
}
四、二维数组
1、对于二维数组
遍历长度:
第一层数组长度【arr.length】
第二层数组长度【arr[i].length】:表示第i个一维数组的长度;
2、创建一个二维数组,但是二维数组中的一维数组的长度不同:
int[][] arr = new int[3][]; ::::二维空间的长度已经定义了,但是二维数组中的一维数组长度还没有定义,所以
还需要为二维数组中的一维数组开辟新的空间;
3、数组int[] arr = new int[3];
其中arr[0],arr[1]、arr[2]都是默认0;