文章目录
- 前言
- 一、二维数组
- 1.1 什么是二维数组
- 1.2 二维数组的声明
- 1.3 使用
- 二、多维数组
- 三、三种初始化方式
- 3.1 静态初始化
- 3.1.1 语法
- 3.1.2 怎么使用?
- 3.2 动态初始化
- 3.2.1 语法
- 3.2.2 怎么使用?
- 3.3 默认初始化
- 四、数组的内存模型
- 4.1 一维数组
- 4.1.1 没有给元素赋值时
- 4.2 二维数组
- 4.3 Java内存
- 五、总结
前言
在Java编程中,二维数组和多维数组是处理表格数据、矩阵运算、图像处理等复杂结构数据的重要工具。本文将像你介绍二维数组和多维数组,以及一些拓展帮助你快速理解。
一、二维数组
1.1 什么是二维数组
二维数组可以理解为一个表格,由行和列组成,或者看作是“数组的数组”。本质上是一维数组的数组,每个元素都是一个一维数组的引用。
1.2 二维数组的声明
// 声明数组数据类型[][]数组名;// 声明同时初始化数据类型[][]数组名=new数组类型[行数][列数];// 可以使用 但是不推荐数据类型 数组名[][];1.3 使用
只说这些没用,还是得自己上手试一试
publicclassArrayDemo01{publicstaticvoidmain(String[]args){// 普通声明int[][]array;// 初始化array=newint[3][4];// 声明同时初始化int[][]array1=newint[3][4];// 赋值array1[0][1]=1;// 第一行一列array1[2][3]=2;// 第三行第四列// 遍历二维数组for(int[]ints:array1){for(intanInt:ints){System.out.print(anInt+"\t");}System.out.println();}}}二、多维数组
其实跟二维数组一样,三维数组可以看作是“二维数组的数组”,在空间数据处理、3D图形等领域有广泛引用。
publicclassArrayDemo02{publicstaticvoidmain(String[]args){// 创建三维数组int[][][]array=newint[2][3][4];intcount=0;// 给数组里按顺序从0开始赋值for(inti=0;i<array.length;i++){for(intj=0;j<array[i].length;j++){for(intk=0;k<array[i][j].length;k++){array[i][j][k]=count++;}}}// for (int[][] ints : array) {// for (int[] ints2 : ints) {// for (int int3 : ints2) {// System.out.print(int3 + " ");// }// System.out.print(" ");// }// System.out.println();// }// 遍历数组for(inti=0;i<array.length;i++){System.out.println("第"+(i+1)+"层:");for(intj=0;j<array[i].length;j++){for(intk=0;k<array[i][j].length;k++){System.out.printf("%3d ",array[i][j][k]);}System.out.println();}System.out.println();}}}总的来说,二维数组和多维数组还是挺简单的,但是要理解它们。
三、三种初始化方式
不管是一维数组还是多维数组都是一样的
3.1 静态初始化
静态初始化是指在创建数组的时候就指定数组元素的值,可以用在已知数组元素值的时候。
3.1.1 语法
数据类型[]数组名=new数据类型[]{元素1,元素2,元素3,...};// 简写数据类型[]数组名={元素1,元素2,元素3,...};3.1.2 怎么使用?
publicclassArrayDemo03{publicstaticvoidmain(String[]args){// 静态初始化String[]array={"张三","李四","王五","赵六","钱七","老八"};// 遍历for(Stringints:array){System.out.print(ints+" ");}}}3.2 动态初始化
动态初始化是指只指定数组的长度,不指定具体元素值,直接由系统为每个元素分配默认值。适合已知数组长度但元素需要在运行时确定。
3.2.1 语法
数据类型[]数组名=new数据类型[数组长度];3.2.2 怎么使用?
publicclassArrayDemo04{publicstaticvoidmain(String[]args){int[]arr=newint[10];for(intints:arr){System.out.print(ints+" ");// 没有声明元素值,所以全部是0;}}}3.3 默认初始化
动态初始化中包含默认初始化
- 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式隐式初始化
| 数据类型 | 默认值 |
|---|---|
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0d |
| char | ‘\u0000’ |
| boolean | false |
| 引用类型 | null |
四、数组的内存模型
4.1 一维数组
4.1.1 没有给元素赋值时
4.2 二维数组
4.3 Java内存
五、总结
Java 数组作为最基础的容器类数据结构,是我们处理批量同类型数据的核心工具。从基础语法到高级应用,掌握数组的本质和使用技巧,不仅能夯实 Java 编程的基础,更能为后续学习集合框架(如 ArrayList、HashMap)、并发编程、IO 流等内容铺平道路。
⭐ 如果这对你有帮助,不妨收藏和分享一下!