二位数组的概述:
其实二维数组就是一个元素为一位数组的数组。
二维数组定义格式
格式一:
数据类型[][] 变量名 =new 数据类型[m
][n]
m 表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素个数
举例:
public class ArryDemo3 {
public static void main(String[] args) {
int[][] arr = new int[3][2];
System.out.println(arr);//地址值[[I@19bfb30
System.out.println(arr[0]);//[I@1884174
System.out.println(arr[1]);//[I@814013
System.out.println(arr[2]);//[I@195d4fe
System.out.println(arr[0][0]);
}
}
格式2:
数据类型[][]变量名 = new 数据类型[m][]
m 表示这个二维数组有多少个一维数组
举例:
public class ArryDemo3 {
public static void main(String[] args) {
int[][] arr = new int[3][];
arr[0] = new int[3];
arr[1] = new int[2];
arr[2] = new int[3];
System.out.println(arr);//地址值[[I@1884174
System.out.println(arr[0]);//[I@814013
System.out.println(arr[1]);//[I@195d4fe
System.out.println(arr[2]);//[I@1d2b01b
System.out.println(arr[0][2]);//0
}
}
格式三:
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
{}中{}的个数表示一维数组的个数
举例:
public class ArryDemo3 {
public static void main(String[] args) {
int[][] arr = {{1,2,3},{2,3,4},{5,6,7}};
System.out.println(arr);//地址值[[I@55d93d
System.out.println(arr[0]);//[I@296f76
System.out.println(arr[1]);//[I@54c4ad
System.out.println(arr[2]);//[I@13c7378
System.out.println(arr[0][1]//打印出第一个数组的第二个数是2
System.out.println(arr[0][0]);//打印出第一个数组的第一个数是1
System.out.println(arr[1][2]);//打印出第二个数组的第三个数是4
}
}
二维数组的遍历
for循环实现二维数组的遍历;
public class ArryDemo3 {
public static void main(String[] args) {
//定义一个数组
int[][] arr = {{1,23,22},{2,3,33},{45,56,78}};
//采用for循环进行遍历
for(int x = 0; x < arr[0].length; x++) {
System.out.println(arr[0][x]);
}
System.out.println("----------------");
//打印第二个数组里的值
for(int x = 0; x < arr[1].length; x++) {
System.out.println(arr[1][x]);
}
System.out.println("----------------");
//用一个for循环来实现打印三个数组
//先取出二维数组的长度
for(int x = 0; x < arr.length; x++) {
//取出二维数组中一维数组的长度
for(int y = 0; y < arr[x].length; y++) {
System.out.print(arr[x][y] +" ");
}
System.out.println();
}
}
}
输出结果
1
23
22
----------------
2
3
33
----------------
1 23 22
2 3 33
45 56 78
用一对for循环进行嵌套区遍历二维数组
外循环用来遍历二维数组
内循环用来遍历二维数组中的一维数组
打印杨辉三角
import java.util.Scanner;
public class YangHui {
public static void main(String[] args) {
//定义键盘录入
Scanner input = new Scanner(System.in);
//提示
System.out.println("输入数据:");
int n = input.nextInt();
//定义二维数组
int[][] arr = new int[n][n];
//每一行的第一个数和最后一个数都是1
for(int x = 0;x < arr.length; x++) {
//每一行的第一个数
arr[x][0] = 1;
//每一行的最后一个数
arr[x][x] = 1;
}
//第三行开始,每一行的数据=斜一行的前一列数据+斜一行的当前列的数据之和 (最后一行除外 )
for(int x = 2; x < arr.length; x++) {
for(int y = 1; y < arr[x].length; y++) {
arr[x][y] = arr[x-1][y-1]+arr[x-1][y];
}
}
//调用方法来测试
print(arr);
}
//采用9*9乘法表打印方式区打印 int y = 0; y <= x; y++
public static void print(int[][] arr) {
for(int x = 0; x < arr.length; x++) {
for(int y = 0; y <= x; y++) {
System.out.print(arr[x][y] +" ");
}
System.out.println();
}
}
}
输入数据:
6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
这里我在键盘录入我输入了6 ,当然你可以任意输入。