Java基础
数组操作常见问题
数组脚标越界异常(ArrayIndexOutOfBoundsException)
int[] arr = new int[2];
System.out.println(arr[3]);
访问到了数组中的不存在的脚标时发生。
空指针异常(NullPointerException)
int[] arr = null;
System.out.println(arr[0]);
arr引用没有指向实体,却在操作实体中的元素时。
数组常见操作
遍历
获取数组中的元素,通常会用到遍历。
数组中有一个属性可以直接获取到数组元素的个数: length
使用方式:数组名称.length =
获取最值
获取数组中的最大值。
思路:
1,获取最值需要进行比较,每一次比较都会有一个较大的值。因为该值不确定,通过一个变量来存储。
2,让数组中的每一个元素都和这个变量中的值进行比较。如果大于了变量中的值,就用该变量记录较大值。
3,当所有元素都比较完成,那么该变量中存储的就是数组中的最大值了。
排序
选择排序
冒泡排序
数组中的查找操作
折半查找
折半查找,可提高效率,但是必须要保证数组是有序数组。
折半的第二种方式
数组中的数组
二维数组
格式1:int[ ][ ] arr = new int[3][2];
定义了名称为arr的二维数组
二维数组中有3个一维数组
每一个一维数组中有2个元素
一维数组的名称分别为arr[0], arr[1], arr[2]
给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;
格式2:int[ ][ ] arr = new int[3][ ];
二维数组中有3个一维数组
每个一维数组都是默认初始化值null
可以对这个三个一维数组分别进行初始化:
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
格式3:int[ ][ ] arr = {{3,8,2},{2,7},{9,0,1,6}};
定义一个名称为arr的二维数组
二维数组中的有三个一维数组
每一个一维数组中具体元素也都已初始化
第一个一维数组arr[0] = {3,8,2};
第二个一维数组arr[1] = {2,7};
第三个一维数组arr[2] = {9,0,1,6};
第三个一维数组的长度表示方式:arr[2].length;
注意特殊写法情况:int[ ] x,y[ ]; x是一维数组,y是二维数组。