二维数组的概念
数组的数组---二维数组的每一个元素是一个一维数组
Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。
arr[0]---第一行的一维数组,要注意操作时可以对每行数组进行操作,而不用对整体。
arr[1][3]---第二行第四列的元素
要注意我们初始化定义的[2][2]是指这个二维数组有两行两列,但对二维数组进行操作的时候,是从[0][0]开始,代表的是第一行第一列。
还要注意这里说的是静态数组。静态数组一旦被声明,它的容量就固定了,不容改变。所以在声明数组时,一定要考虑数组的最大容量,防止容量不够的现象。(如果想变就只能重新申请空间,也就是new)
初始化二维数组的三种方式
//第一种方式:
int a[][]={{1,2,3},{4,5,6}};
//第二种方式;
int[][] ints = new int[4][2];
int [ ]d[ ]=new int[10][10];
ints[i][j] =__; //分别赋值
//第三种方式:第二维的长度可以动态申请
int[][] arr3 = new int[5][];//五行的长度
for(int i=0; i<arr3.length; ++i){
arr3[i]=new int[i+1]; //列的长度每次都变化。每次都要重新申请空间(长度)
for(int j=0; j<arr3[i].length; ++j)
arr3[i][j]= i+j;
}
java的二维数组中行数和列数
二维数组实质是一维数组,一维数组竖起来,其中的元素变成数组就形成了二维!
int i[][] ={{ 1, 2, 8, 9 },
{ 2, 4, 8, 12 },
{ 4, 7, 10, 13 },
{ 6, 8, 11, 15 } };
int rows = i.length;//行数
int columns = i[0].length;//列数
Java 二维数组转一维数组
public class ArrayTranfer {
public static void main(String[] args) {
int int2d[][] = { { 1, 2, 3, 9 }, { 4, 5, 6, 7, 8 } };
int len = 0;
for (int[] element : int2d) {
len += element.length;
}
int int1d = new int[len];
int index = 0;
for (int[] array : int2d) {
for (int element : array) {
int1d[index++] = element;
}
}
}
}
二维数组的遍历---两重for循环
for(int i = 0; i < arr.length; i++){ //遍历二维数组,遍历出来的每一个元素是一个一维数组
for(int j = 0; j < arr[i].length; j++){ //遍历对应位置上的一维数组
System.out.println(arr[i][j]);
}
}