java二维数组
Java 二维数组总结
1,二分查找法
int mid=(low+high)/2;这种方法可能会使int 定义的越界
所以我们将它写成int mid=(low+high)>>>1
">>>" 最高位补0,所以叫无符号右移
无符号右移相当于除法
2,创建二维数组
--------------------------------
所以改变array2[0][0]才会改变array[0][0],因为是动了一个内存地址里的东西
3,二维数组的遍历
二维数组中array是指指向array[0],array[1]的引用变量。array[0],array[0]...才是指向二维数组中元素的引用变量。
4,二维数组的四种拷贝方式
1,for循环
基本类型
这个时候改变array2[0][0]并不会改变array[0][0]因为这次的拷贝是直接把array数组里面的元素内容拷贝给了array2数组里面的元素
引用类型
引用类型数组元素里面也是一个引用变量,它拷贝时将这个引用变量拷贝到另外一个数组中,所以第二个数组里面的引用变量和第一个数组里面的引用变量指向的是同一个地址。所以改变第二个的值也会相应的改变第一个的值
2,clone拷贝
因为clone这个方法是会重新创建一个对象的,后面的具体的也就和for循环的拷贝时一样的了
3,system.arraycopy()
原理与for循环拷贝一样
4,Arrays.copyOf()
原理与clone一样
实际上是新创建了一个对象
public static int[] copyOf(int[] original, int newLength) {
int[] copy = new int[newLength];
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
5,可变参数编程
可变参数就相当于传入了一个匿名数组