二维数组的静态初始化
格式:
//格式
//数据类型[][]数组名=new数据类型[][]{{元素1,元素2},{元素1,元素2}};
//范例:
//int [][]arr=new inr[][]{{11,22},{33,44}};
//简化格式,省去new int
建议把每一个数组单独写一行
注意:每一个一维数组其实是二维数组中的元素,所以每一个一维数组之间要用逗号隔开,最后一个一维数组后面不需要加逗号。
int [][]arr={
{1,2,3}
{4,5,6,7,8}
};
获取元素
//arr[i][j]
//arr:二维数组
//i:二维数组的索引,获取出来的是里面的一对数组
//j:表示一堆数组中的索引,获取出来的是最小单位的元素
//System.out.println(arr[0]);表示获取的是二维数组中第一个一维数组
//System.out.println(arr[0][0]);表示获取的是二维数组中第一个一维数组的第一个元素。
二维数组遍历
//外循环:遍历二维数组,得到里面的每一个一维数组
for(int i=0;i<arr.length;i++){
//i:表示二维数组中的每一个索引
//arr[i]:表示二维数组中的每一个元素(一维索引)
//内循环
for(int j=0;j<arr[i].length;j++){
//j:表示一维数组中的每一个元素
System.out.print(arr[i][j]+" ");
}
}
例题
一年中四个季度的营业额分别是(22,66,44)(77,33,88)(25,45,65)(11,66,99),算出每个季度的营业额和全年的营业额。
public class Main {
public static void main(String[] args) {
int [][]yeararrarr=new int [][]{
{22,66,44},
{77,33,88},
{25,45,65},
{11,66,99}
};
//计算全年的营业额
int yearSum=0;
//便利二维数组得到每一个一维数组并求和
for (int i = 0; i < yeararrarr.length; i++) {
int[]quarterArr=yeararrarr[i];
int sum=getsum(quarterArr);
System.out.println("第"+(i+1)+"个季度的总营业额为:"+sum);
yearSum=yearSum+sum;
}
System.out.println(yearSum);
}
//定义一个方法计算每个季度的营业额
public static int getsum(int[]arr) {//int[]arr为变量名
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
}
杨辉三角 :
public class Main { public static void main(String[] args) { Scanner s=new Scanner(System.in); System.out.println("请输入杨辉三角的层数:");//为了输出美观,层数不要超过13.若层数需要超过13,可以通过添加输出杨辉三角中的"\t"来运行。 int row=s.nextInt();//输入一个杨辉三角的层数。 //确定二维数组的长度 /* 这个二维数组中有row个一维数组; 因为通过杨辉三角的规律,第零行有一个值,第一行有三个值(包含0),第二行有五个值以此类推,第row行有2*row+1个值; 所以每个一维数组的长度为2*row+1; */ int[][] arr=new int[row][2*row+1]; //给第一行最中间赋值1 arr[0][row]=1; //将杨辉三角中的数表示出来 第一行arr[0][row]直接赋值,所以从第二行开始 for(int i=1;i< arr.length;i++){ //每一行从第二个数开始到倒数第二个结束,因为最左边没有左上的值,最右边没有右上的值都为0 for(int j=1;j<arr[i].length-1;j++){ //杨辉三角中的值等于它的左上角的值+右上角的值。 arr[i][j]=arr[i-1][j-1]+arr[i-1][j+1]; } } //遍历输出杨辉三角 //从第一个一维数组开始 for(int i=0;i< arr.length;i++){ //输出第i个一维数组中的值 for(int j=0;j<arr[i].length;j++){ //如果值不等于零时,将它输出 if(arr[i][j]!=0){ System.out.print(arr[i][j]+"\t"); //如果值等于零,用空格代替 }else{ System.out.print(" \t"); } } System.out.println(); } } }