🔥博客主页🔥:【 坊钰_CSDN博客 】
欢迎各位点赞👍评论✍收藏⭐
目录
1. 数组的概念
1.1 为什么存在数组
1.2 数组是什么
1.3 数组的创建
1.4 数组的初始化
1.4.1 动态初始化
1.4.2 静态初始化
1.4.3 默认值
1.5 数组的使用
1.5.2 遍历数组
1.5.3 for - each 循环
2. 引用类型-数组
2.1 默认值 null
3. 二维数组
3.1 遍历二维数组
4. 小结
1. 数组的概念
1.1 为什么存在数组
在生活中,存在多组数据情况有很多
比如:一个班级学生有50人,现在要统计所有学生的分数,难道要一个一个定义 50 个变量来统计吗?并非如此,这样很麻烦,那有没有更为方便的方法呢?
这就引出了数组的用法
1.2 数组是什么
数组是一段存储着相同元素空间,可以看成相同类型元素的一个集合
- 是一段连续的空间
- 元素类型必须一致
- 每一个空间都有一个下标与之对应
1.3 数组的创建
创建数组的结构
类型名[] 数组名 = new 类型名[数组大小]
public class Test {
public static void main(String[] args) {
//创建一个容纳 10 个 int 类型元素的数组
int[] array = new int[10];
//创建一个容纳 10 个 double 类型元素的数组
double[] array1 = new double[10];
//创建一个容纳 10 个 char 类型元素的数组
char[] array2 = new char[10];
}
}
1.4 数组的初始化
创建好数组后,如何给空间添加元素呢?这里有两种初始化方法
1.4.1 动态初始化
指的是在创建数组时,直接确定数组的大小
double[] array1 = new double[10];
char[] array2 = new char[10];
int[] array = new int[10];
1.4.2 静态初始化
创建数组时,不指定数组的大小,而使用具体的数据来代替
double[] array1 = new double[]{1.0, 2.0, 3.0, 4.0};
int[] array2 = new int[]{1, 2, 3, 4, 5, 6, 7, 8};
char[] array = new char[]{'A', 'B', 'C', 'D'};
【注意】
- 当用静态初始化时,[ ] 中不能写任何数字,否则会报错
- 静态初始化时,new 类型名[] 这部分可以省略
double[] array1 = {1.0, 2.0, 3.0, 4.0};
int[] array2 = {1, 2, 3, 4, 5, 6, 7, 8};
char[] array = {'A', 'B', 'C', 'D'};
1.4.3 默认值
对于未初始化的数组,数组中的元素是有默认值的
- 对于引用类型,默认值位 null
1.5 数组的使用
数组中的元素都是有下标的,从 0 开始到 n(数组的长度) - 1 结束
public class Test {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8};
System.out.println(array[0]);
System.out.println(array[3]);
}
}
那么这代码就分别打印出 1 和 4
1.5.2 遍历数组
public class Test {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8};
for(int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
- 其中 array.length 为数组的长度
1.5.3 for - each 循环
public class Test {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8};
for(int x : array)
System.out.print(x + " ");
}
}
for - each 结构
for(int x : 数组名)
System.out.print(x);
该循环会依次遍历数组中元素,在打印
2. 引用类型-数组
我们知道数据类型分为 基本数据类型 和 引用数据类型,而数组则为引用数据类型的一种
引用数据类型一般存储的是对应空间的地址
public class Test {
public static void main(String[] args) {
int[] array = new int[]{10, 20, 30};
}
}
array 是引用变量,其内部保存的是数组在堆空间的首地址,而 array 则是在虚拟机栈
上图可以看到,引用类型不直接存储对象本身,而是存储对象在堆空间中的起始地址,通过引用该地址,可以去操作对象在堆空间创建的值
2.1 默认值 null
当我们创建数组时,不确定多大时,可以用 null 代替,它意思为:一个不指向对象的引用
public class Test {
public static void main(String[] args) {
int[] array = null;
}
}
3. 二维数组
有一句话:二维数组是一个特殊的一维数组
二维数组的结构
类型名[] [] 数组名 = new 类型名[行数] [列数] { 初始化数据 };
public class Test {
public static void main(String[] args) {
int[][] array = new int[][]{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
}
}
只用一张图就可清晰解释二维数组的存储方式
3.1 遍历二维数组
- array.length 表示行数
- array[i].length 表示列数
public class Test {
public static void printf(int[][] array) {
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
public static void main(String[] args) {
int[][] array = new int[][]{ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
printf(array);
}
}
运行结果
4. 小结
以上就是对数组的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持!