数组的特点:
1. 数组只能存储同一种 数据类型的数据。2. 数组是会给存储到数组中 的元素分配一个索引值的,索引值从0开始,最大的索引值是length-1;
3. 数组一旦初始化,长度固定。
4. 数组中的元素与元素之间的内存地址是连续的。
二维数组: 二维数组就是数组中的数组。
烟
一根 变量
一盒 20根 一维数组一条 10包 20根 二维数组
二维数组 的定义格式:
数据类型[ ][ ] 变量名 = new 数据类型[ 一维数组的个数][ 每一个一维数组中元素的个数];长度1:一条烟有多少盒。
长度2: 一盒烟有多少根。
二维数组 的初始化方式:
动态初始化:数据类型[][] 变量名 = new 数据类型[长度1][长度2];
静态初始化:
数据类型[][] 变量名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...} ..}
public static void main(String[] args)
{
//定义了一个二维数组
int[][] arr = new int[3][4];
arr[1][1] = 100;
/*
System.out.println("二维数组的长度:"+ arr.length); // 3
System.out.println("二维数组的长度:"+ arr[1].length); //4
*/
System.out.println("数组的元素:"+ arr[1][1]);
}
疑问: 为什么 arr.length = 3, arr[1].length = 4 ?
二维数组常见的操作:
1. 遍历二维数组
2. 对二维数组求和
class myArr
{
// 定义一个遍历二维数组的功能函数
public static void printArr2( int [][] a ){
// 1. 拆开二维数组
for ( int i = 0 ; i < a.length ; i++ )
{
// 2. 拆开一维数组获取数据
for ( int j = 0 ; j < a[i].length ; j++ )
{
System.out.print( a[i][j]+" ," );
}
}
}
// 定义一个函数计算二维数组中的元素的累加和
public static long getSum( int [][] a ){
// 0. 定义一个结果变量
long sum = 0L;
// 1. 拆开二维数组
for ( int i = 0 ; i < a.length ; i++ )
{
// 2. 拆开一维数组获取数据
for ( int j = 0 ; j < a[i].length ; j++ )
{
sum+=a[i][j];
}
}
return sum;
}
// 统计二维数组中元素的个数
public static int getDataCount( int [][] a ){
// 0. 记录元素个数
int count = 0;
// 1. 拆开二维数组
for ( int i = 0 ; i < a.length ; i++ )
{
// 2. 拆开一维数组获取数据
for ( int j = 0 ; j < a[i].length ; j++ )
{
count++;
}
}
return count;
}
public static void main(String[] args)
{
int [][] a = new int[][]{ {23,4,5},{2},{4,5,78,56,90} };
printArr2( a );
System.out.println();
System.out.println("累加和是: "+getSum( a ) );
System.out.println("统计元素个数: "+getDataCount( a ) );
System.out.println("Hello World!");
}
}