二维数组
-
数据类型[][] 数组名 ; --推荐使用这种声明方式
-
数据类型[] 数组名[] ;
-
数据类型 数组名[][];
初始化
-
数据类型[][] 数组名=new
数据类型[一维数组的长度][二维数组的长度]; -
数据类型[][] 数组名=new 数据类型[一维数组的长度][];
-
数据类型[][] 数组名=new 数据类型[][]{{1,2,3},{4,5},{6}…};
-
数据类型[][] 数组名={{1,2,3},{4,5},{6}…};
遍历二维数组的方式
双重for循环(可以普通for,可以是增强for)
常见的两个异常
ArrayIndexOutOfBoundsException 数组索引越界异常
-
索引超过最大值
-
索引为负数
NullPointerException 空指针异常
- 引用值为null
数组的排序
选择排序
-
元数据{5,7,2,6,3} 一共比较的轮数:是数据个数-1 1~arr.length-1
0~arr.length-2 -
第一轮比较:{2,7,5,6,3} 确定一个最小值放在索引为0的位置
比较规则:拿索引为0的第一个数据和后面的每一个数据比较,找到最小的放在索引为0的位置
冒泡排序
-
选择排序和冒泡排序比较:
-
冒泡排序更简单
-
选择排序执行效率相对更高
二分法查找
-
先升序 排序为前提
-
最小索引:min
-
最大索引:max
-
中间索引:mid=(min+max)/2
-
如果找到返回索引:
-
如果不存在要查找数据,返回-1
可变参数
-
可变 可以有,可以没有,有的个数可变
-
… :表示可变参数,放在数据类型和参数名之间 int a,int … b
-
可变参数要写在参数列表的最后面
-
可变参数,会内部自动为它创建一个数组,如果要在方法中使用可变参数的内容,需要使用数组的使用方式
Arrays
-
static int[] copyOf(int[] original, int newLength)
-
复制指定的数组,截取或用 0
填充(如有必要),以使副本具有指定的长度。 -
默认从索引为0的位置开始拷贝,返回新数组