携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情
二维数组:数组的初始化方式总共有三种:静态初始化、动态初始化、默认初始化
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外伐颂都是零元素。
二维数组:[][]
静态初始化
除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
eg:
int[][] arr = {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
int[][] arr =new int[][] {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
动态初始化
数组定义与为数组元素分配空间并赋值的操作分开进行。
eg:
int[][] arr = new int[3][]; //本质上定义了一维数组长度为3,每个“格子”中放入的是一个数组
arr[0] = {1,2};
arr[1] = {3,4,5,6};
arr[2] = {34,45,56};
描述
给定一个二维数组,请你编写一个求和函数,计算出这个数组元素的和
输出描述:
输出二维数组元素的和
public static void main(String[] args) {
int[][] arr = {{11,33,50},{22,44,66,88},{131,214,315,146},{928,827,726,625},{424,525}};
//方法体1 二维数组
int sum=add(arr);
System.out.println(sum);
//方法体2 单数组
int[] arr1 = {5,10,5,10,5,5};
int sum1=add1(arr1);
System.out.println(sum1);
}
//利用for 循环迭代进行 相加的操作
private static int add1(int[] arr1) {
int sum=0;
for(int i=0;i<arr1.length;i++){
sum=sum+arr1[i];
}
return sum;
}
public static int add(int[][] arr) {
int sum=0;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
sum=sum+arr[i][j];
}
}
return sum;
}
运行结果
5175
40
扩展资料:
数组(Array)是有序的元素序列。 [1] 若将有限个类型相同的变量的[集合]命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为[下标变量]。用于区分数组的各个元素的数字编号称为下标。数组是在[程序设计]中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 [1] 这些有序排列的同类数据元素的集合称为数组。
数组是用于储存多个相同类型数据的集合。
二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一王畜囊个元素,即二维数组的行下标注欠从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t
按“列优先顺序”存储时,地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t
存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节。