二维数组
1.二维数组的定义格式
1. 概述: 数组中的套多个数组
2. 定义格式
a. 动态初始化
数据类型[ ] [ ] 数组名 = new 数据类型[ m] [ n]
数据类型 数组名[ ] [ ] = new 数据类型[ m] [ n]
数据类型[ ] 数组名[ ] = new 数据类型[ m] [ n]
m: 代表的是二维数组的长度
n: 代表的是二维数组中每一个一维数组的长度
数据类型[ ] [ ] 数组名 = new 数据类型[ m] [ ] -> 二维数组中的一维数组没有被创建
b. 静态初始化
数据类型[ ] [ ] 数组名 = new 数据类型[ ] [ ] { { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } }
数据类型 数组名[ ] [ ] = new 数据类型[ ] [ ] { { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } }
数据类型[ ] 数组名[ ] = new 数据类型[ ] [ ] { { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } }
c. 简化静态初始化:
数据类型[ ] [ ] 数组名 = { { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } }
数据类型 数组名[ ] [ ] = { { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } }
数据类型[ ] 数组名[ ] = { { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } , { 元素1 , 元素2. . . } }
public class Demo01Array {
public static void main ( String [ ] args) {
int [ ] [ ] arr1 = new int [ 2 ] [ 2 ] ;
int [ ] [ ] arr2 = new int [ 2 ] [ ] ;
System . out. println ( "======================" ) ;
String [ ] [ ] arr3 = { { "孙悟空" , "唐僧" } , { "刘备" , "关羽" , "张飞" } , { "宋江" } , { "林黛玉" , "贾宝玉" , "王熙凤" , "薛宝钗" } } ;
}
}
2.获取二维数组长度
1. 格式:
数组名. length
2. 获取每一个一维数组长度, 需要先遍历二维数组, 将每一个一维数组从二维数组中拿出来
public class Demo02Array {
public static void main ( String [ ] args) {
String [ ] [ ] arr = { { "张三" , "李四" } , { "王五" , "赵六" , "田七" } , { "猪八" , "牛九" } } ;
System . out. println ( arr. length) ;
for ( int i = 0 ; i < arr. length; i++ ) {
System . out. println ( arr[ i] . length) ;
}
}
}
3.获取二维数组中的元素
1. 格式:
数组名[ i] [ j]
i: 代表的是一维数组在二维数组中的索引位置
j: 代表的是元素在一维数组中的索引位置
public class Demo03Array {
public static void main ( String [ ] args) {
String [ ] [ ] arr = { { "张三" , "李四" } , { "王五" , "赵六" , "田七" } , { "猪八" , "牛九" } } ;
System . out. println ( arr[ 0 ] [ 0 ] ) ;
System . out. println ( arr[ 2 ] [ 0 ] ) ;
System . out. println ( arr[ 1 ] [ 1 ] ) ;
}
}
4.二维数组中存储元素
1. 格式:
数组名[ i] [ j] = 值
i: 代表的是一维数组在二维数组中的索引位置
j: 代表的是元素在一维数组中的索引位置
public class Demo04Array {
public static void main ( String [ ] args) {
String [ ] [ ] arr = new String [ 2 ] [ 2 ] ;
arr[ 0 ] [ 0 ] = "张飞" ;
arr[ 0 ] [ 1 ] = "李逵" ;
arr[ 1 ] [ 0 ] = "刘备" ;
arr[ 1 ] [ 1 ] = "宋江" ;
System . out. println ( arr[ 0 ] [ 0 ] ) ;
System . out. println ( arr[ 0 ] [ 1 ] ) ;
System . out. println ( arr[ 1 ] [ 0 ] ) ;
System . out. println ( arr[ 1 ] [ 1 ] ) ;
}
}
5.二维数组的遍历
1. 先遍历二维数组, 将每一个一维数组遍历出来
2. 再遍历每一个一维数组, 将元素获取出来
public class Demo05Array {
public static void main ( String [ ] args) {
String [ ] [ ] arr = new String [ 2 ] [ 2 ] ;
arr[ 0 ] [ 0 ] = "张飞" ;
arr[ 0 ] [ 1 ] = "李逵" ;
arr[ 1 ] [ 0 ] = "刘备" ;
arr[ 1 ] [ 1 ] = "宋江" ;
for ( int i = 0 ; i < arr. length; i++ ) {
for ( int j = 0 ; j < arr[ i] . length; j++ ) {
System . out. println ( arr[ i] [ j] ) ;
}
}
}
}
6.二维数组内存图
public class Demo06Array {
public static void main ( String [ ] args) {
int [ ] [ ] arr1 = new int [ 3 ] [ ] ;
arr1[ 1 ] = new int [ ] { 1 , 2 , 3 } ;
arr1[ 2 ] = new int [ 3 ] ;
arr1[ 2 ] [ 1 ] = 100 ;
}
}