二维数组求和:
int sum = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
sum += a[i][j];
}
} System.out.println("数组a中所有元素的和为:" + sum);
关于数组:
1.数组是一种有序的数据集合,其中包含相同数据类型的元素。
2.不能通过数组名将整个数组作为整体进行赋值。
3.sort默认升序
4.
int[] arr = { 2, 3, 1, 5, 4, 6};
Arrays.sort(arr);
int index=Arrays.binarySearch(arr, 3);//搜索值为3的元素在排好序的数组arr中的索引。
System.out.println(index);//输出2
5.
int[] a = { 31, 28, 31, 30 };
int[] b = a;
b[2] = 4;
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
此时a,b都变,都输出[31,28,4,30]
6.copyOf(arr,6)是将arr数组复制到一个新的长度为六的数组中,若arr长度小于六则填充0(对基本数据类型)/null(对对象类型),大于六则只复制前六个元素。
int[] arr = { 1, 2, 3, 4, 5, 6};
int[] a=Arrays.copyOf(arr, 5);
int[] b=Arrays.copyOf(arr, 7);
System.out.println(Arrays.toString(a));//[1,2,3,4,5]
System.out.println(Arrays.toString(b));//[1,2,3,4,5,6,0]
反转排序:
int temp;
int len = p.length;
for (int i = 0; i < len / 2; i++) {
int temp = p[i] ;
p[i] = p[len-1-i];
p[len-1-i] = temp;
}
求矩阵对角线元素和:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int sum = 0;
for (int i = 0; i < 3; i++) {
sum += matrix[i][i]; // 左上到右下对角线
sum += matrix[i][2 - i]; // 右上到左下对角线
}
if (matrix.length % 2 != 0) {
sum -= matrix[matrix.length / 2][matrix.length / 2]; // 如果矩阵为奇数阶,减去重复计算的中心元素
}
System.out.println("对角线元素之和为: " + sum);
转置:
int[][] originalArray = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{10, 11, 12},
{13, 14, 15}
};
int[][] transposedArray = new int[3][5];
for (int i = 0; i < originalArray.length; i++) {
for (int j = 0; j < originalArray[i].length; j++) {
transposedArray[j][i] = originalArray[i][j];
}
}
System.out.println("转置后的数组为:");
for (int i = 0; i < transposedArray.length; i++) {
for (int j = 0; j < transposedArray[i].length; j++) {
System.out.print(transposedArray[i][j] + " ");
}
System.out.println();
}