数组
数组可以存储相同类型的多个数据
特点:
数据是引用类型
数组是一个容器
数组中有多个数据,且数据类型是一致的
数组是有序的
索引|下表:就是数组中每个数值的序列号,索引从0开始
声明:
数据类型[] 数组名;
//声明数组
int[] arr;
数据类型可以为基本数据类型|引用数据类型
[]是数组的符号,代表数组
初始化:
静态初始化:
声明同时赋值,根据数据个数决定长度
数据类型[] 数组名 = {值1,值2,值3,…};
int[] arr = {1,2,3...};//值的个数即为数组的长度
数据类型[] 数组名 = new 数据类型[]{值1,值2,值3,…}
char[] arrchar = new char[]{1,2,3...};//值的个数即为数组的长度
动态初始化:
确定数组长度,后续根据需求赋值
数据类型[] 数组名 = new 数据类型[长度];
数组名[0] = 值1;
数组名[1] = 值2;
数组名[2] = 值3;
…
//动态初始化数组
String[] arr3 = new String[3]
arr3[0] = "你";
arr3[1] = "我";
arr3[2] = "他";
数组的长度用: 数组名.length表示
//表示数组的长度
arr3.length
//表示数组的最后一个数值的索引
arr3[arr3.length-1]
遍历数组
for循环遍历
//i=数组的索引,索引<长度,循环所有索引
for(int i=0;i<arr.length;i++){
//打印所有值
System.out.println(arr[i]);
}
for循环遍历可以操作和获取数组中的数字
for…each遍历
//用变量i接取数组arr中的每一个值
for(int i:arr){
//打印所有的值
System.out.println(i);
}
for…each是获取数组中数据非常方便的方法,但是不能对数组的数据进行操作
二维数组
数组中存放数组
声明:
数据类型[][] [][]
数组名;
int[][] arr;
初始化:
数据类型[][]
数组名 = new 数据类型[长度][长度2]
;
//先定义好数组的长度,然后再动态赋值
int[][] arr1 = new int[2][3]; //2是外层一维数组的长度,3是内层二维数组的长度
arr1[0][0] = 1;
arr1[0][1] = 2;
arr1[0][2] = 3;
arr1[1][0] = 4;
arr1[1][1] = 5;
arr1[1][2] = 6;
数据类型[][]
数组名 = new 数据类型[长度][]
;
//先定义外层一维数组的长度,再动态赋值二维数组的数值
int[][] arr1 = new int[2][];
arr1[0] = new int[]{1,2,3};
arr1[1] = new int[]{4,5,6};
数据类型 [][]
数组名 = new 数据类型[][]
{{值1,值2,值3…},{值1,值2,值3…}…}
//内外层数组的长度根据赋的值多少决定
int[][] arr2 = new int[][]{{1,2,3},{4,5,6}};
数据类型[][]
数组名 = {{值1,值2,值3…},{值1,值2,值3…}…}
//二维数组每个数组的长度不限
int[][] arr2 = {{1,2},{3}{4,5,6}...};
二维数组的遍历:
//利用循环嵌套实现二维数组遍历
//i为外层数组的索引,i的范围为0~arr.length-1(外层数组长度-1)
for(int i=0;i<arr.length;i++){
//j为内层数组的索引,j的范围为0~arr[i].length-1(每一个内层数组的长度-1)
for(int j=0,j<arr[i].length;j++){
//打印二维数组中的每一个值
System.out.println(j);
}
}