如何在Java中查詢矩陣元素的總和?
在Java中,陣列是一個物件。它是一種非基本資料型別,用於儲存相似資料型別的值。Java中的矩陣只不過是一個多維陣列,它表示多行和多列。
這裡我們給出了一個包含一組元素的矩陣,根據題目要求,我們需要找出矩陣內所有元素的總和。
讓我們深入研究這篇文章,瞭解如何使用Java程式語言來實現它。
為了向您展示一些例項
例項1
給定矩陣 = (此處應插入矩陣資料)
21 22 23 24 25 26 27 28 29
上述矩陣元素之和 = 315
例項2
給定矩陣 = (此處應插入矩陣資料)
121 222 243 432 124 245 256 657 237 258 229 345 176 453 756 343
上述矩陣元素之和 = 4194
例項3
給定矩陣 = (此處應插入矩陣資料)
1 2 3 4 5 6 7 8 9
上述矩陣元素之和 = 45
演算法
演算法1
步驟1 − 宣告一個二維矩陣。
步驟2 − 呼叫使用者自定義方法來查詢矩陣中所有元素的總和。
步驟3 − 該方法使用兩個巢狀迴圈迭代矩陣中的每個元素,並將當前元素的值新增到執行總計中。
步驟4 − 該方法返回矩陣中所有元素的總和。
演算法2
步驟1 − 宣告一個二維矩陣。
步驟2 − 呼叫使用者自定義方法來查詢矩陣中所有元素的總和。
步驟3 − 該方法使用Arrays.stream將二維矩陣轉換為一維元素流,並使用forEach將每個元素的值新增到執行總計中。
步驟4 − 該方法返回矩陣中所有元素的總和。
演算法3
步驟1 − 宣告一個二維矩陣。
步驟2 − 呼叫使用者自定義方法來查詢矩陣中所有元素的總和。
步驟3 − 該方法使用Stream API將二維矩陣轉換為一維元素流,並使用reduce查詢流中所有元素的總和。
步驟4 − 該方法返回矩陣中所有元素的總和。
語法
要獲取陣列的長度(陣列中的元素個數),陣列有一個內建屬性,即length
以下是它的語法:
array.length
其中,“array”指的是陣列引用。
多種方法
我們提供了不同的方法來解決這個問題。
使用巢狀迴圈
使用Stream API
使用Arrays.stream和flatMap
讓我們逐一檢視程式及其輸出。
方法1:使用巢狀迴圈
在這種方法中,矩陣元素將在程式中初始化。然後透過將陣列作為引數傳遞來呼叫使用者定義的方法,並且在方法內部根據演算法使用巢狀迴圈計算給定矩陣的元素之和。
示例 (此處應插入程式碼示例)
public class Main {
public static void main(String[] args) {
// declare and initialize the 2D matrix
int[][] inputMatrix = {{10, 20, 30}, {40, 50, 60}, {70, 80, 90}};
// Call the user-defined method to get the sum of all elements
int sum = sumOfMatElmt(inputMatrix);
// Print the result
System.out.println("Sum of matrix elements: " + sum);
}
//user-defined method to find the sum of the elements
public static int sumOfMatElmt(int[][] mat) {
// declare and initialize the sum variable
int sum = 0;
for (int i = 0; i < mat.length; i++) {
// initiate the looping over each column of the current row
for (int j = 0; j < mat[i].length; j++) {
// Add the current element to the sum
sum += mat[i][j];
}
}
// Return the result
return sum;
}
}
輸出 (此處應插入輸出示例)
Sum of matrix elements: 450
方法2:使用Stream API
在這種方法中,矩陣元素將在程式中初始化。然後透過將陣列作為引數傳遞來呼叫使用者定義的方法,並且在方法內部根據演算法使用Stream API計算給定矩陣的元素之和。
示例 (此處應插入程式碼示例)
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
// declare and Initialize the 2D matrix
int[][] inputMatrix = {{11, 22, 33}, {44, 55, 66}, {77, 88, 99}};
// Call the sumOfMatrixElements method to get the sum of all elements
int sum = sumOfMatElmnt(inputMatrix);
// Print the result
System.out.println("Sum of matrix elements: " + sum);
}
public static int sumOfMatElmnt(int[][] mat) {
// Create an IntStream for each row of the matrix
// and use map to get the sum of each row
// Finally, use sum method to get the sum of all rows
return IntStream.range(0, mat.length)
.map(i -> IntStream.of(mat[i]).sum())
.sum();
}
}
輸出 (此處應插入輸出示例)
Sum of matrix elements: 495
方法3:使用Arrays.stream和flatMap
在這種方法中,矩陣元素將在程式中初始化。然後透過將陣列作為引數傳遞來呼叫使用者定義的方法,並且在方法內部根據演算法使用Arrays.stream和flatMap計算給定矩陣的元素之和。
示例 (此處應插入程式碼示例)
import java.util.Arrays;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
// Declare a 2D matrix
int[][] matrix = {{12, 23, 34}, {45, 56, 67}, {78, 89, 90}};
// Call the calculateSumOfElements method to find the sum of all elements
int sum = calculateSumOfElements(matrix);
// Print the result
System.out.println("The sum of all elements in the matrix is: " + sum);
}
public static int calculateSumOfElements(int[][] matrix) {
// Use Arrays.stream and flatMap to convert the 2D matrix into a 1D stream of elements
return Arrays.stream(matrix)
.flatMapToInt(IntStream::of)
.sum();
}
}
輸出 (此處應插入輸出示例)
The sum of all elements in the matrix is: 494
在這篇文章中,我們探討了使用Java程式語言查詢矩陣和的不同方法。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP