Java基础——二维数组
Posted 再写一封
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础——二维数组相关的知识,希望对你有一定的参考价值。
二维数组
一、二维数组的初始化格式
二维数组的实质就是一维数组的数组
1、格式一
数据类型[][] 变量名 = new 数据类型[m][n]
int[][] arr = new int[2][2];
m代表二维数组中一维数组的个数
n代表二维数组中所包含每一维数组所能包含的元素个数
2、格式二
数据类型[][] 变量名 = new 数据类型[m][];
int[][] arr = new int[2][];
arr[0] = new int[1];
arr[1] = new int[2];
arr[2] = new int[3];
注意:这种方式从存储角度讲更加灵活!
m表示这个二维数组有多少个一维数组
这一次没有直接给出一维数组的元素个数,可以动态的给出。
3、格式三
数据类型[][] 变量名 = new 数据类型[][]{{元素……},{元素……},{元素……}};
简化版格式:
数据类型[][] 变量名 = {{元素……},{元素……},{元素……}};
二、二维数组的遍历
public class TwoDimensionDemo1 {
public static void main(String[] args) {
//数据类型[][] 变量名 = new 数据类型[m][n];
//int[][] a = new int[2][2];
//System.out.println(a); //[[ 二维数组 I 整数类型 @ 4554617c二维数组的首地址
//
//System.out.println(a[0]); //[I@ 74a14482
//
////访问二维数组中的元素
//System.out.println(a[0][1]);
//
////给二维数组中的变量赋值
//a[0][1] = 100;
//System.out.println(a[0][1]);
//二维数组的初始化格式2
//数据类型[][] 变量名 = new 数据类型[m][];
//int[][] arr = new int[2][];
//System.out.println(arr[0].length);
//arr[0] = new int[1];
//arr[1] = new int[2];
//二维数组的访问同上
//二维数组初始化格式3
// 数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
int[][] c = new int[][]{{1, 2},{3},{4, 5, 6}};
//System.out.println(c[0][1]);
printTwoDemisionArray(c);
//System.out.println(Arrays.toString(c));
}
public static void printTwoDemisionArray(int[][] arr) {
// int[][] arr.length 表示的是二维数组的长度(可以包含的一维数组的个数)
// int[] arr[i]是一个一维数组的引用变量 arr[i].length 二维数组中第i个一维数组的长度
//双重循环,遍历二维数组
//外层循环,控制访问二维数组中的哪个一维数组
for (int i = 0; i < arr.length; i++) {
//针对二维数组中的每一个一维数组的遍历
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
//System.out.println(Arrays.toString(arr[i]));
}
}
}
打印杨辉三角
public class Exercise {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
printTwoDemisionArray(triangleYang(n));
}
public static int[][] triangleYang(int n) {
int[][] result;
if (n == 1) {
result = new int[][]{{1}};
return result;
}
if (n == 2) {
result = new int[][]{{1}, {1, 1}};
return result;
}
//当 n>=3 的的时候
//第二种初始化方式,初始化结果二维数组
result = new int[n][];
//先初始化第一行和第二行数据
result[0] = new int[]{1};
result[1] = new int[]{1, 1};
//从第三行开始,计算杨辉三角的值
for (int i = 2; i < n; i++) {
result[i] = new int[i + 1]; //第i(从0开始编号)行, 元素个数 i + 1
result[i][0] = 1; //一行的第一个元素值为1
result[i][i] = 1; //一行的最后一个元素,值也为1
for (int j = 1; j < i; j++) {
//第i行第j列的值 = 第i - 1行第j列值 + 第i - 1行第j - 1列
result[i][j] = result[i - 1][j] + result[i -1][j - 1];
}
}
return result;
}
public static void printTwoDemisionArray(int[][] arr) {
// int[][] arr.length 表示的是二维数组的长度(可以包含的一维数组的个数)
// int[] arr[i]是一个一维数组的引用变量 arr[i].length 二维数组中第i个一维数组的长度
//双重循环,遍历二维数组
//外层循环,控制访问二维数组中的哪个一维数组
for (int i = 0; i < arr.length; i++) {
//针对二维数组中的每一个一维数组的遍历
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
//System.out.println(Arrays.toString(arr[i]));
System.out.println();
}
}
}
以上是关于Java基础——二维数组的主要内容,如果未能解决你的问题,请参考以下文章