一维数组
概念:数组就像一个容器,可以存储一种数据类型的多个元素,数组既可以存储基本数据类型,也可以存储引用数据类型。
定义格式:
a.数据类型[] 数组名
eg:int[] array=new int[]{1,2,3} or int[] array={1,2,3}
b.数据类型 数组名
eg:int array[]={1,2,3}
- 数组必须初始化,可分为:
a.动态初始化:固定数组长度,由系统为数组分配初始化值。
int[] arr=new int[5];
b.静态初始化:给出初始化值,系统计算长度
int[] arr={1,2,3,4}; arr.length=4
(ps:数组角标从0开始,所有最后一个元素的角标是length-1)
- 数组中常出现的两类异常:
a. int[] arr3=null;
System.out.println(arr3[1]);
异常:java.lang.NullPointerException 空指针异常
b. int[] arr4=new int[4];
System.out.println(arr4[5]);
异常:java.lang.ArrayIndexOutOfBoundsException
数组越界,长度只有4,并没有为5号位开辟空间
二维数组
- 格式:
数据类型[][]变量名=new 数据类型[][];
int[][] arr=new int[2][5];
有两个一维数组,arr[0],arr[1],每个一维数组有5个元素,长度为5,arr[0][0],arr[0][1],这样取元素。
(PS:数组长度也可以不用写出来,可以动态给出,例如:arr[0]=new int[5];
数组的几种常见操作
数组的遍历(逆序从最后一个开始遍历)
int arr[]={1,2,3,4,5};
For(int i=0;i<arr.length;i++){
System.out.println(arr[i]);}数组的最值(从第一个去进行比较)
int max=arr[0];
for(int i=1;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];}
}数组的反转(元素的交换,定义一个中间变量)
int[] arr={1,2,3,4};
For(int i=0;i<arr.length/2;i++){
Int t=arr[i];
arr[i]=arr[arr.length-1-i];
Arr[arr.length-1-i]=t;}