若文章内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系博主删除。
写这篇博客旨在制作笔记,方便个人在线阅览,巩固知识。无他用。
二维数组的静态初始化
- 格式:
数据类型[][] 数组名 = new 数据类型[][]{{元素1, 元素2}, {元素1, 元素2}};
- 范例:
int[][] arr = new int[][]{{11, 22}, {33, 44}};
- 简化格式:
数据类型[][] 数组名 = {{元素1, 元素2}, {元素1, 元素2}};
- 范例①:
int[][] arr = {{11, 22}, {33, 44}};
(推荐) - 范例②:
int arr[][] = {{11, 22}, {33, 44}};
【阿里巴巴 Java 开发手册】
- 【强制】中括号是数组类型的一部分,数组定义如下:
String[] args;
- 反例:使用
String args[]
- 静态初始化
int[][] arr1 = new int[][]{{1, 2, 3}, {4, 5, 6, 7, 8}};
int[][] arr2 = {{1, 2, 3}, {4, 5, 6, 7, 8}};
int[][] arr3 = {
{1, 2, 3},
{4, 5, 6, 7, 8}
};
打印输出测试
System.out.println("arr3[0][0]:" + arr3[0][0]);
System.out.println("arr3[1][4]:" + arr3[1][4]);
- 遍历方式一
for (int i = 0; i < arr3.length; i++) {
for (int j = 0; j < arr3[i].length; j++) {
System.out.print(arr3[i][j] + " ");
}
}
- 遍历方式二
for (int[] ints : arr3) {
for (int anInt : ints) {
System.out.print(anInt + " ");
}
}
二维数组的动态初始化
- 格式:
数据类型[][] 数组名 = new 数据类型[m][n]
- 范例:
int[][] arr = new int[2][3]
- 该数组可以存放
个一维数组,每一个一维数组可以存放
个 int
int[][] arr = new int[3][5];
arr[0][0] = 10;
二维数组的内存图
int[][] arr = new int[2][3];
int[][] arr = new int[2][];
int[] arr1 = {11, 22};
int[] arr2 = {33, 44, 55};
arr[0] = arr1;
arr[1] = arr2;
new int[2][]
先在堆中开辟了一个空间,之后把 arr1[]
和 arr2[]
的地址值赋值给 arr[][]
下的空间。
int[][] arr = new int[2][3];
int[] arr1 = {11, 22};
int[] arr2 = {33, 44, 55};
arr[0] = arr1;
arr[1] = arr2;
new int[2][3]
先在堆中开辟了一个空间,并记录了相关地址值,之后 arr1[]
和 arr2[]
的地址值覆盖了给 arr[][]
下所记录的地址值。
小练习
某商场每个季度的营业额如下(单位:万元)
- 第一季度:22、66、44
- 第二季度:77、33、88
- 第三季度:25、45、65
- 第四季度:11、66、99
要求计算出各个季度的总营业额和全年的总营业额
代码
public class TwoDimensionalArray {
public static void main(String[] args) {
int[][] arr = {
{22, 66, 44},
{77, 33, 88},
{25, 45, 65},
{11, 66, 99}
};
int yearSum = 0;
for (int i = 0; i < arr.length; i++) {
int[] ints = arr[i];
int monthSum = getSum(ints);
System.out.println("第 " + (i + 1) + " 个季度的总营业额是:" + monthSum);
yearSum = yearSum + monthSum;
}
System.out.println("全年的总营业额是:" + yearSum);
}
public static int getSum(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
}
控制台打印信息
第 1 个季度的总营业额是:132
第 2 个季度的总营业额是:198
第 3 个季度的总营业额是:135
第 4 个季度的总营业额是:176
全年的总营业额是:641