------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
数组概念
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。数组既可以存储基本数据类型,也可以存储引用数据类型
简单记:数组是存储多个变量(元素)的东西(容器),这多个变量的数据类型要一致。
数组定义格式
格式1: 数据类型[] 数组名;
格式2: 数据类型 数组名[];
初始化的分类:
a:动态初始化: 只指定长度,由系统给出初始化值
格式:
数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
举例: int[] arr = new int[3]; 定义了一个int类型的数组arr,这个数组可以存放3个int类型的值。
b:静态初始化: 给出初始化值,由系统决定长度
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
举例: int[] arr = new int[]{1,2,3};
简化格式:
数据类型[] 数组名 = {元素1,元素2,…};
举例: int[] arr = {1,2,3};
注意事项: 这两种方式,只能使用一种,不能进行动静结合
数组操作的两个常见小问题越界和空指针
a:ArrayIndexOutOfBoundsException:数组索引越界异常
原因:你访问了不存在的索引。
b:NullPointerException:空指针异常
原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
数组的操作:遍历
//数组遍历
public static void print(int[] arr){
System.out.print("[");
//循环
for(int x=0;x<arr.length;x++){
if(x==arr.length-1){
System.out.println(arr[x]+"]");
}else{
System.out.print(arr[x]+", ");
}
}
}
数组的操作:获取最值
//获取最值
public static int getMax(int[] arr){
int max=arr[0];
for(int x=1;x<arr.length;x++){
if(arr[x]>max){
max=arr[x];
}
}
return max;
}
数组的操作:反转
//反转
public static void reverse(int[] arr){
for(int start=0,end=arr.length-1;start<end;start++,end--){
int temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
}
数组的操作:获取角标值
//获取角标值
public static int getIndex(int[] arr,int a){
int index=-1;
for(int x=0;x<arr.length;x++){
if(arr[x]==a){
index=x;
break;
}
}
return index;
}
//二维数组的遍历
public static void printArr(int[][] arr){
for(int x=0;x<arr.length;x++){
for(int y=0;y<arr[x].length;y++){
System.out.print(arr[x][y]+"\t");
}
System.out.println();
}
}
//二维数组求和
public static int sum(int[][] arr){
int sum=0;
for(int x=0;x<arr.length;x++){
for(int y=0;y<arr[x].length;y++){
sum+=arr[x][y];
}
}
return sum;
}
//杨辉三角
public static void arrayP(int[][] arr){
for(int x=0;x<arr.length;x++){
arr[x][0]=1;
arr[x][x]=1;
}
for(int x=2;x<arr.length;x++){
for(int y=1;y<x;y++){
arr[x][y]=arr[x-1][y-1]+arr[x-1][y];
}
}
for(int x=0;x<arr.length;x++){
for(int y=0;y<=x;y++){
System.out.print(arr[x][y]+"\t");
}
System.out.println();
}
}