二维数组的声明、创建
- 可以使用二维数组来存储表格。
- 可以使用以下语法来声明二维数组变量:
元素类型 [][] 数组变量 - 可以使用以下语法来创建二维数组变量:
new 元素类型[ 行的个数 ][ 列的个数 ] - 使用下面的语法表示二维数组中的每个元素:
数组变量[ 行下标 ][ 列下标 ] - 可以使用数组初始化语法来创建和初始化二维数组:
元素类型[][] 数组变置 ={{ 某行的值 } { 某行的值 }}
对二维数组的操作
对二维数组按列求和:
class Class35{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("Enter:");
int row=scanner.nextInt();//定义二维数组的行
int col=scanner.nextInt();//定义二维数组的列
double[][] matrix=new double[row][col];
for(int i=0;i<matrix.length;i++){//外层循环表示行 也就是一维数组的个数
for(int j=0;j<matrix[i].length;j++){//内层循环表示列 也就是一维数组的长度
matrix[i][j]=scanner.nextDouble();
}
}
for(int j=0;j<col;j++){//外层循环表示列
double sum=0;
for(int i=0;i<row;i++){//内层循环表示行
sum+=matrix[i][j];//每列元素求和
}
System.out.println(j+"col's sum is"+sum);
}
}
用二维数组实现矩阵的转置(将矩阵的行列互换得到的新矩阵称为转置矩阵,转置矩阵的行列式不变)。
double[][] matrix=new double[][]{{1,2,3},//先创建一个二维数组表示一个矩阵
{4,5,6}
};
double[][] arr=new double[matrix[0].length][matrix.length];//创建一个新数组,新数组的行为原数组的列,新数组的列为原数组的行
for(int i=0;i<arr.length;i++){//外层循环表示行 也就是一维数组的个数
for(int j=0;j<arr[i].length;j++){//内层循环表示列 也就是一维数组的长度
arr[i][j]=matrix[j][i];//将新数组与原数组行列交换
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
用二维数组实现矩阵的乘法:
int[][] ma=new int[][]{{1,2}, //创建一个二维数组表示第一个矩阵
{3,4},
{5,6} };
int[][] mb=new int[][]{{1,2,3},//再创建一个二维数组表示第二个矩阵
{4,5,6}};
int[][] mc=new int[ma.length][mb[0].length];//创建一个新的二维数组存放乘积 新数组的行是第一个数组的行 新数组的列是第二个数组的列
for(int i=0;i<mc.length;i++){//第一层循环表示新数组的行
for(int j=0;j<mc[i].length;j++){//第二层循环表示新数组的列
int sum=0;
for(int k=0;k<mb.length;k++){//第三层循环表示第一个数组的列或第二个数组的行
sum+=ma[i][k]*mb[k][j];//两矩阵元素相乘求和
}
mc[i][j]=sum;//将乘积和赋给新数组
System.out.print(mc[i][j]+" ");
}
System.out.println();
}
}