《从C/C++到Java入门指南》- 16.多维数组
多维数组
二维数组
打印一下 Java 中的二维数组会发现,打印的是 JVM 中的地址:
import java.util.*;
public class Main {
public static void main(String[] args) {
int arr[][] = {
{1, 2, 3},
{4, 5, 6}
};
int ns[] = {3, 4, 1, 3};
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(ns));
}
}
输出结果:
[[I@5ccd43c2, [I@4aa8f0b4]
[3, 4, 1, 3]
打印一下二维数组的长度:
import java.util.*;
public class Main {
public static void main(String[] args) {
int arr[][] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
System.out.println(arr.length);
}
}
其在内容中的结构如下:
打印出数组的每一行:
import java.util.*;
public class Main {
public static void main(String[] args) {
int arr[][] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int arr_0[] = arr[0];
int arr_1[] = arr[1];
int arr_2[] = arr[2];
System.out.println(Arrays.toString(arr_0));
System.out.println(Arrays.toString(arr_1));
System.out.println(Arrays.toString(arr_2));
}
}
Java 中二维数组中的每一个子数组长度不要求相同:
import java.util.*;
public class Main {
public static void main(String[] args) {
int arr[][] = {
{1, 2, 3},
{4, 5, 6, 8, 9},
{7, 8, 9, 7}
};
int arr_0[] = arr[0];
int arr_1[] = arr[1];
int arr_2[] = arr[2];
System.out.println(Arrays.toString(arr_0));
System.out.println(Arrays.toString(arr_1));
System.out.println(Arrays.toString(arr_2));
}
}
打印二维数组
最麻烦的方法当然是用循环打印二维数组了,但是还有一种更加简单的方法(调用 JDK函数接口):
使用Arrays.deepToString()
方法
import java.util.*;
public class Main {
public static void main(String[] args) {
int arr[][] = {
{1, 2, 3},
{4, 5, 6, 8, 9},
{7, 8, 9, 7}
};
System.out.println(Arrays.deepToString(arr));
}
}
三维数组
一种很形象的描述是:“三维数组就是二维数组的数组”。
import java.util.*;
public class Main {
public static void main(String[] args) {
int[][][] ns = {
{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
},
{
{10, 11},
{12, 13}
},
{
{14, 15, 16},
{17, 18}
}
};
System.out.println(Arrays.deepToString(ns));
}
}
可以看到,deepToString()
就是一种深度搜索的打印多维数组的方法,在三位数组的情况下也同样适用,并且它在内存中的结构如下图所示:
练习
使用二维数组可以表示一组学生的各科成绩,请计算所有学生的平均分:
int[][] scores = {
{ 82, 90, 91 },
{ 68, 72, 64 },
{ 95, 91, 89 },
{ 67, 52, 60 },
{ 79, 81, 85 },
};
import java.util.*;
public class Main {
public static void main(String[] args) {
int[][] scores = {
{ 82, 90, 91 },
{ 68, 72, 64 },
{ 95, 91, 89 },
{ 67, 52, 60 },
{ 79, 81, 85 },
};
for (int[] stu : scores) {
int stu_ave = 0;
for (int score : stu) {
stu_ave += score;
}// 对每个学生求出成绩的总分
stu_ave /= scores[0].length;// 除以长度得到其平均分
System.out.println(stu_ave);
}
}
}
原文地址:https://blog.csdn.net/2301_79640368/article/details/140579844
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!