17下标越界及小结,数组的使用,二维数组
Java数组02--下标越界及小结,数组的使用,二维数组
[TOC]
下标越界及小结
数组地四个基本特点
- 其长度是确定的,数组一旦被创建,它的大小就是不可以改变地。
- 其元素必须是相同类型,不允许出现混合类型。
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
- 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
- 数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
数组边界
下标的合法区间:[0,length-1],如果越界就会报错;
public static void main(String[] args){ int[] a=new int[2]; System.out.println(a[2]); }- ArrayIndexOutOfBoundsException:数组下标越界异常!
小结:
- 数组是相同数据类型(数据类型可以为任意类型)的有序集合
- 数组也是对象。数组元素相当于对象的成员变量
- 数组长度是确定的,不可变的。如果越界,则报:ArrayIndexOutOfBounds
数组的使用
For-Each 循环
public class ArrayDemo04 { public static void main(String[] args) { int[] arrays={1,2,3,4,5}; //JDK1.5,没有下标 for (int array : arrays) { System.out.println(array); } } }数组作方法入参
数组作返回值
public class ArrayDemo04 { public static void main(String[] args) { int[] arrays={1,2,3,4,5}; int[] reverse =reverse(arrays); printArray(reverse); } //打印数组元素 public static void printArray(int[] arrays){ for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i]+" "); } } //反转数组 public static int[] reverse(int[] arrays){ int[] result =new int[arrays.length]; //反转操作 for (int i = 0,j=result.length-1; i < arrays.length; i++,j--) { result[j]=arrays[i]; //result[]=arrays[i]; } return result; } }代码运行结果:
![image-20211207194544353]()
多维数组
多维数组可以看成是数组的的数组,比如二维数组就是一个特殊的一组数组,其每一个元素都是一个一维数组。
![image-20211207195212972]()
二维数组
int a[][]=new int[2][5];- 解析:以上二维数组a可以卡号曾一个两行五列的数组。
思考:多维数组的使用?
练习1:
public class ArrayDemo05 { public static void main(String[] args) { /* 1,2 2,3 3,4 4,5 */ int[][] array ={{1,2},{2,3},{3,4},{4,5}}; System.out.println(array[0]); } }程序结果:
![image-20211207200620969]()
- 输出一个对象!!
练习2:
public class ArrayDemo05 {
public static void main(String[] args) {
/*
1,2
2,3
3,4
4,5
*/
int[][] array = {{1, 2}, {2, 3}, {3, 4}, {4, 5}};
printArray(array[0]);
}
//打印数组元素
public static void printArray(int[] arrays) {
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i] + " ");
}
}
}
程序结果:

练习3:
public class ArrayDemo05 {
public static void main(String[] args) {
/*
1,2 array[0]
2,3 array[1]
3,4 array[2]
4,5 array[3]
*/
int[][] array = {{1, 2}, {2, 3}, {3, 4}, {4, 5}};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
}
}
程序结果:





浙公网安备 33010602011771号