概念
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
一维数组
数组定义格式
格式1: 数据类型[] 数组名;
格式2: 数据类型 数组名[];
int[] a 定义了一个int类型的数组a;
int a[] 定义了一个int类型的a数组;
初始化动态初始化
数组的初始化
Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
初始化的分类
a:动态初始化: 只指定长度,由系统给出初始化值
b:静态初始化: 给出初始化值,由系统决定长度
注意事项: 这两种方式,只能使用一种,不能进行动静结合
动态初始化的格式
数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
举例:
`int[] arr = new int[3];`
定义了一个int类型的数组arr,这个数组可以存放3个int类型的值。
静态初始化的格式:
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
举例: int[] arr = new int[]{1,2,3};
简化格式:
数据类型[] 数组名 = {元素1,元素2,…};
举例:
int[] arr = {1,2,3};
public class MyTest2 {
public static void main(String[] args) {
//动态初始化
double[] arr = new double[5];
System.out.println(arr[0]);
//静态初始化
int[] arr2=new int[]{20,10,30,40};
arr2[0]=100;
System.out.println(arr2[0]);
//数组的静态初始化的简写方式
int[] arr3={200,300,400};
System.out.println(arr3[0]);
//数组中的属性:获取动态获取数组长度的属性 length
int len= arr3.length;
System.out.println(len);
int[] arr4 = {200, 300, 400,20,2,30,92,30,20};
//最后一个元素的索引=数组长度-1
System.out.println(arr4[arr4.length-1]);
}
}
二维数组
二维数组格式1
数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组有多少个一维数组 必须写上
n表示每一个一维数组的元素个数 可选
举例:
int[][] arr = new int[3][2];
public class ArrayDemo {
public static void main(String[] args) {
int[][] arr=new int[2][3];
//取一个二维数组中的第一个元素
System.out.println(arr[0]);
System.out.println(arr[1]);
//取出第一个一维数组中的第一个元素
int num=arr[0][0];
System.out.println(num);
System.out.println(arr[0][1]);
System.out.println(arr[1][0]);
System.out.println(arr[1][1]);
}
表示定义了一个二维数组arr
这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]
每个一维数组有2个元素,可以通过arr[m][n]来获取
表示获取第m+1个一维数组的第n+1个元素
二维数组格式2
数据类型[][] 变量名 = new 数据类型[m][];
m表示这个二维数组有多少个一维数组
这一次没有直接给出一维数组的元素个数,可以动态的给出。
举例:
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[1];
二维数组格式3
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}…};
简化版:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
这个格式属于静态初始化:由我们指定具体的元素值,由系统给分配长度
举例:
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
int[][] arr = {{1,2,3},{5,6},{7}};
二维数组案例
案例演示
需求:公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
public class ArrayDemo3 {
public static void main(String[] args) {
/* A:
案例演示
需求:公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22, 66, 44
第二季度:77, 33, 88
第三季度:25, 45, 65
第四季度:11, 66, 99*/
// int[][] arr={{22, 66, 44},{77, 33, 88},{25, 45, 65},{11, 66, 99}};
int[][] arr = new int[4][3];
int[] one={22, 66, 44};
int[] two={77, 33, 88};
int[] three={25, 45, 65};
int[] four={11, 66, 99};
arr[0]=one;
arr[1]=two;
arr[2]=three;
arr[3]=four;
int sum=0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
sum+=arr[i][j];
}
}
System.out.println("总销售额"+sum);
}
}