数组就是一种容器,可以存放同种数据类型的多个值。
但可以在高范围的数组中存放低范围的数据,例如在double类型数组中存放int类型的数据(因为存在隐式转换,int类型会自动转换城double类型);但不能存放boolean类型数据。
当定义的数组的数据类型为object时,数组中可以存放多种数据类型的数据。
数组元素的访问通过 数组名[数组下标] 去访问数组中的元素,下标从0开始,到 数组长度-1 结束。
一维数组
一维数组的定义
静态数组初始化,直接给数组的元素赋值
语法: 据类型[] 数组名=new 数据类型[]{值1,值2,值3...}; 例:int[] arr=new int[]{1,2,3};
简化后:数据类型[] 数组名={值1,值2,值3...}; 例:int[] arr={1,2,3};
或者 数据类型 数组名[]={} 例:int arr[]={1,2,3};
注:
1、[]中在静态定义时,不能在里面输入数组数组长度。
2、后面的{}中可以为空,即里面的元素个数为0,一个都不定义。
3、在定义的数组的数据类型为int类型时,{}中的元素值可以为NULL(元素值为NULL时,也算一 个元素),但不能为true或false,如果数组元素是布尔类型,那么该数组的数据类型必须是 boolean。
动态数组初始化,可以通过系统去给数组中的每个元素赋值,例如让用户自己通过键盘给数组的每个元素进行赋值。
语法:数据类型[] 数组名=new 数据类型[数组长度];
当定义了数组长度,就不要在后面添加{}以及元素值,这种适合通过系统给数组中的元素赋值。
例:
int[] arr=new int[3];
for (int i=0;i<arr.length;i++) //arr.length求出arr的数组长度
{
Scanner scanner=new Scanner(System.in);
arr[i]=scanner.nextInt(); //通过键盘一个个地给元素赋值
}
二维数组
二维数组是一种容器,里面的每个元素都是一维数组
二维数组静态初始化
格式: 数据类型[][] 数组名 = new 数据类型[][] {{元素1,元素2},{元素1, 元素2}};
简化后: 数据类型[][] 数组名 = {{元素1,元素2},{元素1, 元素2}};
例:int[][] arr={{1.2,3},{4,5,6}};
注:在静态定义时,每个一维数组的长度可以不相同。
二维数组态初始化
格式: 数据类型[][] 数组名 = new 数据类型[m][n];
(m:表示装一维数组的外层数组长度,n表示二维数组里的每个一维数组的长度)
通过 数组名[m][n] 去访问数组中的元素,m访问二维数组的哪一个一维数组,n表示访问的这个一维数组中的哪个元素。
例:
int[][] arr=new int[3][3];
for (int i=0;i<arr.length;i++)
{
for (int j = 0; j < arr[i].length; j++)
{
arr[i][j]=j;
System.out.print(arr[i][j]+" ");
}
System.out.println();
}