数组
将多个同类型的值存储在一个组合中,称为数组。里面一个个值称为元素。
一维数组
声明:
静态初始化的声明:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3};
例如:
String[] strArr = new String[]{"a","b","c","d"};
动态初始化的声明:
数据类型[] 数组名 = new 数据类型[长度];
例如:
int[] nums = new int[5];
二维数组以及多维数组
下面以二维数组为例:
二维数组就是数组里面的元素还是数组。
声明:
静态初始化
数据类型[][] 数组名 = new 数据类型[][]{{},{},{}};
例如:
int[][] numsInNums = new int[][]{{1,2,3},{4,5},{6,7}};
动态初始化
数据类型[][] 数组名 = new 数据类型[外层数组长度][内层数组长度];
例如:
int[][] numsIntNums = new int[3][2];
获取数组中的元素操作
遍历数组元素
1、普通for循环遍历
for ( int i = 0; i < strArr.length; i++ ) {
System.out.println(strArr[i] + " ");
}
/**
数组名.length 是Object中的方法,每个类如果没有显示定义继承哪个父类,都默认Object是直接父类(继承再详谈)
i = 0为起始:因为数组脚标是从0开始为索引的 长度为5的元素中的索引是:0、1、2、3、4
所以boolean表达式中i 是 < 数组的长度,而没有取 <=
*/
for ( int i = 0; i < numsInNums.length; i++ ) {
for ( int j = 0; j < numsInNums[i].length; j++ ) {
System.out.print(numsIntNums[i][j] + " ");
}
System.out.println();//换行操作 遍历完第一个元素(一维数组)就换一次行
}
2、foreach(增强for循环)遍历
for ( int[] items : numsInNums ) {//第一层for 取出了二维数组的元素(一维数组)
for ( int item : items ) {//第二层for 再从元素(一维数组)取出元素值
System.out.print(item + " ");
}
System.out.println();//换行作用
}
操作数组会经常报的两个异常
NullPointException:空指针异常
出现的原因:你所遍历的数组中的元素,其中存在null值
ArrayIndexOutOfBoundsException:下标越界异常
出现的原因:你所遍历的数组中的长度并没有那么长,超出了你所遍历的数组的长度
以上两个异常是初学者(说的就是在下)经常会出现的bug