/*
二位数组:
由多个一维数组组成的数组.
定义二维数组的格式:
数据类型[][] 数组名称 ;
数据类型[] 数组名称[] ;
初始化:
动态初始化: 系统默认给定当前数组元素值...
格式1:
数据类型[][] 数组名称 = new 数据类型[m][n] ;
举例:
int[][] arr = new int[3][2] ;
左边:
int[][] :定义了一个int类型的二维数组
arr:数组的名称
右边:
new :在堆内存中开辟空间
[3]:当前二维数组中有3个一维数组
[2]:每一个维数组中有2个元素
注意事项: 当前变量前面限定,是什么?一维数组,二维数组...
int x,y ;
int[] x,y;
int[] x,y[] ;
...
静态初始化
无论一维数组还是二维数组,定义数组的时候,不能动静结合
int[] arr = new int[3]{1,2,3} ; 错误的
数组中的最值的问题
return max ,min ; //错误的
*/
class Demo{
public static void main(String[] args){
//定义一个二维数组,动态初始化
int[][] arr = new int[2][3] ;
//二维数组中的有2个一维数组,每一个一维数组有3个元素
System.out.println(arr) ;//[[I@6d06d69c
System.out.println(arr[0][1]) ;//0
System.out.println(arr[1][2]) ;//0
System.out.println(arr[1][0]) ;//0
arr[0][1] = 10 ;
arr[1][2] = 20 ;
System.out.println(arr) ;//[[I@6d06d69c
System.out.println(arr[0][1]) ;//10
System.out.println(arr[1][2]) ;//20
System.out.println(arr[1][0]) ;//0
}
}
/*
二维数组格式2:
数据类型[][] 数组名称 = new 数据类型[m][] ; m:表示一维数组的长度,
这种一维数组中的具体的元素动态给定.
举例:
int[][] arr = new int[3][] ;
错误的
int[][] arr = new int[][3] ;
*/
class Demo{
public static void main(String[] args){
//格式2的定义
int[][] arr = new int[3][] ;
//赋值内容 //动态给定每个一维数组具体的长度
arr[0] = new int[2] ;
arr[1] = new int[3] ;
arr[2] = new int[1] ;
System.out.println(arr) ;//地址值
System.out.println(arr[0][0]) ;
System.out.println(arr[1][2]) ;
System.out.println(arr[2][0]) ;
//System.out.println(arr[1][3]) ; //数组角标越界异常
arr[0][1] = 20 ;
arr[1][0] = 10 ;
arr[1][2] = 30 ;
arr[2][0] = 100 ;
System.out.println(arr) ;//地址值 [[I@6d06d69c
System.out.println(arr[0][0]) ;//0
System.out.println(arr[0][1]) ;//20
System.out.println(arr[1][0]) ;//10
System.out.println(arr[1][2]) ;//30
System.out.println(arr[2][0]) ;//100
}
}