一、数组的定义
1.两种方式
①数据类型[] 数组名 = new 数据类型[元素个数或数组长度];
int[] x = new int[100];
1public class ArrayDemo02 { 2 public static void main(String[] args) { 3 int[] arr = new int[4]; // 定义可以存储4个整数的数组 4 arr[0] = 1; // 为第1个元素赋值1 5 arr[1] = 2; // 为第2个元素赋值2 6 // 下面的代码是打印数组中每个元素的值 7 System.out.println("arr[0]=" + arr[0]); 8 System.out.println("arr[1]=" + arr[1]); 9 System.out.println("arr[2]=" + arr[2]); 10 System.out.println("arr[3]=" + arr[3]); 11 } 12}
注:这个创建的数组实际上是在堆内存中创建了一块空间存放值,并生成一个地址,这个地址指向这个名为**的数组,具体的内存形态在以后详细阐述
②类型[] 数组名 = new 类型[]{元素,元素,……};
类型[] 数组名 = {元素,元素,元素,……};
1public class ArrayDemo03 { 2 public static void main(String[] args) { 3 int[] arr = { 1, 2, 3, 4 }; // 静态初始化 4 // 下面的代码是依次访问数组中的元素 5 System.out.println("arr[0] = " + arr[0]); 6 System.out.println("arr[1] = " + arr[1]); 7 System.out.println("arr[2] = " + arr[2]); 8 System.out.println("arr[3] = " + arr[3]); 9 } 10}
2.数组的基本操作
class arr { public static void main(String[] args){ //挑选数组中的最大值 int[] arr2={8,4,9,2,1,5}; int max=arr2[0]; for (int i=1;i<arr2.length ;i++ ) { if (arr2[i]<max) { max=arr2[i]; } } System.out.println("最大值为"+max); //一位数组的累加 int sum2=0; int[] arr5={1,2,3,0,5,6}; for (int i=0;i<arr5.length ;i++ ) { sum2=sum2+arr5[i]; } System.out.println(sum2); } }
二、二维数组
1.二维数组的定义
//第一种二维数组定义方式 int [][] arr4=new int[2][3]; arr4[0][0]=1; arr4[1][2]=2; //第二种二维数组定义方式 int[][] arr4={{1,2,3,},{0,5,6}};
2.二维数组的基本操作
class arr { public static void main(String[] args){ //第一种二维数组定义方式 int [][] arr4=new int[2][3]; arr4[0][0]=1; arr4[1][2]=2;*/ //第二种二维数组定义方式 int[][] arr4={{1,2,3,},{0,5,6}}; //二维数组的遍历 for (int i=0;i<arr4.length ;i++ ) { for (int j=0;j<arr4[i].length;j++ ) { System.out.println(arr4[i][j]); int sum=0; //二维数组的累加 sum=sum+arr4[i][j]; } } System.out.println(sum); System.out.println(arr4[0][0]); System.out.println(arr4[0][1]); System.out.println(arr4[0][2]); System.out.println(arr4[1][0]); System.out.println(arr4[1][1]); System.out.println(arr4[1][2]); } }
三、数组异常
1.数组越界
指数组下标超过或小于数组的长度而找不到数组中的值
public class ArrayDemo06 { public static void main(String[] args) { int[] arr = new int[4]; // 定义一个长度为4的数组 System.out.println("arr[0]=" + arr[4]); // 通过下标4访问数组元素 } }
2.空指针异常
在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常
public class ArrayDemo07 { public static void main(String[] args) { int[] arr = new int[3]; // 定义一个长度为3的数组 arr[0] = 5; // 为数组的第一个元素赋值 System.out.println("arr[0]=" + arr[0]); // 访问数组的元素 arr = null; // 将变量arr置为null System.out.println("arr[0]=" + arr[0]); // 访问数组的元素 } }