Java菜鸟成长之路__Day_3_Java_二维数组

来源:互联网 发布:网络推广中介怎么样 编辑:程序博客网 时间:2024/06/05 05:17

二维数组:就是元素为一维数组的数组。

格式:

数据类型 [] [] 数组名=new 数据类型[m] [n];

m:表示这个二维数组里有m个一维数组.

n:表示每个一维数组里有n个元素.

其他格式(不推荐):

数据类型 数组名 [] [] = new 数据类型 [m] [n];

数据类型 [] 数组名 [] = new 数据类型 [m] [n];

class Array2Demo {
public static void main(String[] args) {
//定义一个二维数组
int[][] arr = new int[3][2];
//定义了一个二维数组arr
//这个二维数组有3个一维数组的元素
//每一个一维数组有2个元素
//输出二维数组名称
System.out.println(arr); //地址值[[I@175078b
//输出二维数组的第一个元素一维数组的名称
System.out.println(arr[0]); //地址值[I@42552c
System.out.println(arr[1]); //地址值[I@e5bbd6
System.out.println(arr[2]); //地址值[I@8ee016
//输出二维数组的元素
System.out.println(arr[0][0]); //0
System.out.println(arr[0][1]); //0
}

静态初始化:

基本格式:

数据类型 [] [] 数组名=new 数据类型 [][]{{元素1,元素2,元素3...},{元素1,元素2,元素3...},.....};

简化格式(常用推荐):

数据类型 [] [] 数组名={{元素1,元素2,元素3...},{元素1,元素2,元素3...},.....};

举例:

int [][] arr={{1,2,3},{1,2,3},{34,324}};

class Array2Demo3 {
public static void main(String[] args) {
//定义数组
int[][] arr = {{1,2,3},{4,5},{6}};

System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);

System.out.println(arr[0][0]); //1
System.out.println(arr[1][0]); //4
System.out.println(arr[2][0]); //6

System.out.println(arr[0][1]); //2
System.out.println(arr[1][1]); //5
//越界
System.out.println(arr[2][1]); //错误
}
}

注意:数组索引从0开始,最大索引是数组长度-1.

格式二:

数据类型 [][] 数组名=new 数据类型 [m][];

m表示二维数组里有m个一维数组

一维数组中的元素个数没有给,可以动态变化.

class Array2Demo2 {
public static void main(String[] args) {
//定义数组
int[][] arr = new int[3][];

System.out.println(arr);//[[I@175078b
System.out.println(arr[0]); //null
System.out.println(arr[1]); //null
System.out.println(arr[2]); //null

//动态的为每一个一维数组分配空间
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = new int[1];

System.out.println(arr[0]); //[I@42552c
System.out.println(arr[1]); //[I@e5bbd6
System.out.println(arr[2]); //[I@8ee016

System.out.println(arr[0][0]); //0
System.out.println(arr[0][1]); //0
//ArrayIndexOutOfBoundsException
//System.out.println(arr[0][2]); //错误

arr[1][0] = 100;
arr[1][2] = 200;
}
}

二维数组的遍历:

外循环控制的是二维数组的长度,其实就是一维数组的个数。
内循环控制的是一维数组的长度。

public static void printArr(int [] [] arr){

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();

}

}

原创粉丝点击