Java学习随笔-二维数组
作者:互联网
Java的二维数组
我们可以吧二维数组理解成为,原来的一维数组中的每一个元素里又存放了一个一维数组,然后就构成了二维数组。就是数组里面又套了一个数组
二维数组也类似于以前小时候学的二维直角坐标系(XY轴),每个X轴和Y轴对应的位置就是一个二维数组元素。
1、二维数组的定义
二维数组的定义和一维数组一样,也是要先声明后开辟内存空间才能使用
int[][] arr1;//声明
arr1 = new int[3][3]//再开空间
//声明和开辟空间写在一起:
//数据类型[][] 数组名 = new 数据类型[行数][列数]
int[][] arr = new int[6][6];//定义了一个6行6列的二维数组
2、二维数组的初始化
静态初始化
int[][] arr = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
//定义了一个二维数组,其中里面有4个一维数组,每个一维数组里面有4个元素
//也可以理解为定义了两个4行4列的二维数组
动态初始化
String[][] b=new String[10][10];//定义了一个二维数组,其中里面有10个一维数组,每个一维数组里面有10个元素
b[0]=new String[]{"刘备","关羽","张飞"};//第一行
b[1]=new String[]{"Java","PHP","c++"};//第二行
3、二维数组的遍历
//例子
public class demo01 {
public static void main(String[] args) {
//静态初始化
int[][] a={{1,2,3,4},{4,5,6,7},{8,9,10,11},{10,11,12,13}};
//遍历
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
//arr[i].length 相当于得到了 对应的 每个一维数组的长度,arr[i]就是拿到其中的一个一维数组的意思
System.out.print(a[i][j]+" ");
}
System.out.println();//换行
}
}
}
4、关于二维数组的关键概念
- 二维数组的每一个元素都相当于一个一维数组
int[][] arr = {{1,2,1,2,1,2},{3,4,3,4,3,4},{5,6,5,6,5,6},{7,8,7,8,7,8}}
System.out.println("二维数组的元素个数=" + arr.length);//arr.length = 4;
//输出结果
//二维数组的元素个数=4
- 二维数组的没一个元素是一维数组,所以需要得到每一个一维数组的值还需要再次遍历
- 数组的索引(下标)都是从0开始的
//arr[1][1]表示第二行第二个元素
5、动态初始化-列数不确定
public class TwoDimensionalArray {
public static void main(String[] args) {
//创建 二维数组,一共有3个一维数组,但是每一个一维数组还没有开数据空间
int[][] arr = new int[3][];//! ! 列数不确定 ! !
/*
要求输出数组:
i=0: 1
i=1: 2 2
i=3; 3 3 3
*/
for (int i = 0; i < arr.length; i++) {//遍历arr每个一维数组
//给每个一维数组开空间 new
//如果没有给一维数组 new,那么 arr[i]就是null
arr[i] = new int[i + 1];
//遍历一维数组,并给一维数组的每个元素赋值
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = i + 1;//赋值
}
}
//遍历输出
System.out.println("最终二维数组为:");
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}
结果:
标签:arr,Java,一维,int,二维,数组,new,随笔 来源: https://www.cnblogs.com/YeJ1an/p/16685272.html