Java 中查詢矩陣每一行的奇數和偶數元素個數
在 Java 中,陣列是一個物件。它是一種非原始資料型別,用於儲存相同資料型別的值。Java 中的矩陣只不過是一個多維陣列,它表示多行和多列。
這裡我們給出一個包含一組元素的矩陣,根據題目要求,我們需要找出矩陣每一行中奇數和偶數元素的個數。
讓我們開始吧!
舉幾個例子
示例 1
給定矩陣 =
21 22 23 24 25 26 27 28 29
第 1 行有 2 個奇數元素和 1 個偶數元素
第 2 行有 1 個奇數元素和 2 個偶數元素
第 3 行有 2 個奇數元素和 1 個偶數元素
示例 2
給定矩陣 =
121 222 243 432 124 245 256 657 237 258 229 345 176 453 756 343
第 1 行有 2 個奇數元素和 2 個偶數元素
第 2 行有 2 個奇數元素和 2 個偶數元素
第 3 行有 3 個奇數元素和 1 個偶數元素
第 4 行有 2 個奇數元素和 2 個偶數元素
示例 3
給定矩陣 =
1 2 3 4 5 6 7 8 9
第 1 行有 2 個奇數元素和 1 個偶數元素
第 2 行有 1 個奇數元素和 2 個偶數元素
第 3 行有 2 個奇數元素和 1 個偶數元素
演算法
演算法 1:(使用 for 迴圈)
步驟 1 − 使用巢狀 for 迴圈遍歷矩陣的每一行和每一行中的每個元素。
步驟 2 − 使用兩個變數 oddCount 和 evenCount 來跟蹤每一行中奇數和偶數元素的個數。
步驟 3 − 對於每一行中的每個元素,使用模運算子 (%) 檢查它是奇數還是偶數。
步驟 4 − 如果元素是偶數,則遞增 evenCount;否則,遞增 oddCount。
步驟 5 − 遍歷完一行中的所有元素後,列印該行的奇數和偶數元素的個數。
演算法 2:(使用 Java 流)
步驟 1 − 使用 Java 流 API 中的 IntStream 類來處理矩陣每一行中的元素。
步驟 2 − 使用兩個變數 oddCount 和 evenCount 來跟蹤每一行中奇數和偶數元素的個數。
步驟 3 − 對於每一行,它從該行中的元素建立一個 IntStream,然後使用 filter 方法獲取奇數和偶數元素的個數。
步驟 4 − filter 方法接收一個 Predicate 作為引數,該引數對於奇數元素返回 true,對於偶數元素返回 false。
步驟 5 − 遍歷完所有行後,列印每一行的奇數和偶數元素的個數。
演算法 3:(使用 Arrays 類)
步驟 1 − 使用 Java 標準庫中的 Arrays 類來處理矩陣每一行中的元素。
步驟 2 − 使用兩個變數 oddCount 和 evenCount 來跟蹤每一行中奇數和偶數元素的個數。
步驟 3 − 對於每一行,它使用 Arrays 類中的 stream 方法從該行中的元素建立一個流,然後使用 filter 方法獲取奇數和偶數元素的個數。
步驟 4 − filter 方法接收一個 Predicate 作為引數,該引數對於奇數元素返回 true,對於偶數元素返回 false。
步驟 5 − 遍歷完所有行後,列印每一行的奇數和偶數元素的個數。
語法
1. Java 中的 Matrix.length() 方法返回給定矩陣的長度。
下面是它的語法:
inputMatrix.lenght
其中,“inputMatrix”指的是給定的矩陣。
2. IntStream.of() 方法是 Java Stream API 的一部分,用於從 int 值陣列建立原始 int 值的流。
IntStream.of(inputMatrix[i])
其中,“inputMatrix”指的是給定的矩陣。
3. filter() 方法用於根據條件過濾流中的元素。滿足條件的元素保留在結果流中,其餘元素被丟棄。在本例中,filter 方法用於從 IntStream.of() 方法建立的 int 值流中過濾奇數和偶數元素。
filter(x -> x % 2 != 0)
多種方法
我們提供了多種解決方法。
使用 for 迴圈
使用 Java 流
使用 Arrays 類
讓我們逐一檢視程式及其輸出。
方法 1:使用 for 迴圈
在這種方法中,矩陣元素將在程式中初始化。然後根據演算法 1 使用 for 迴圈計算該矩陣每一行中奇數和偶數元素的個數。
示例
public class Main {
public static void main(String[] args) {
//declare and initialize a 2D matrix
int[][] inputMatrix = {{11, 21, 23, 44}, {52, 36, 47, 58}, {49, 10, 11, 12}};
//loop to find odd/even counts
for (int a = 0; a < inputMatrix.length; a++) {
int oddCnt = 0, evenCnt = 0;
for (int b = 0; b < inputMatrix[a].length; b++) {
if (inputMatrix[a][b] % 2 == 0) {
evenCnt++;
} else {
oddCnt++;
}
}
//print the result
System.out.println("Row " + (a + 1) + " has " + oddCnt + " odd elements and " + evenCnt + " even elements");
}
}
}
輸出
Row 1 has 3 odd elements and 1 even elements Row 2 has 1 odd elements and 3 even elements Row 3 has 2 odd elements and 2 even elements
方法 2:使用 Java 流
在這種方法中,矩陣元素將在程式中初始化。然後根據演算法 2 使用 Java 流計算該矩陣每一行中奇數和偶數元素的個數。
示例
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
//declare and initialize a 2D matrix
int[][] inputMatrix = {{1, 2, 3}, {5, 6, 7}, {10, 11, 12}};
for (int i = 0; i < inputMatrix.length; i++) {
// create a stream from the elements in the row and filter odd and even elements
long oddCount = IntStream.of(inputMatrix[i]).filter(x -> x % 2 != 0).count();
long evenCount = IntStream.of(inputMatrix[i]).filter(x -> x % 2 == 0).count();
//print the results
System.out.println("Row " + (i + 1) + " has " + oddCount + " odd elements and " + evenCount + " even elements");
}
}
}
輸出
Row 1 has 2 odd elements and 1 even elements Row 2 has 2 odd elements and 1 even elements Row 3 has 1 odd elements and 2 even elements
方法 3:使用 Arrays 類
在這種方法中,矩陣元素將在程式中初始化。然後根據演算法 3 使用 Arrays 類計算該矩陣每一行中奇數和偶數元素的個數。
示例
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
//declare and initialize a 2D matrix
int[][] inputMatrix = {{21, 24, 23, 42}, {25, 16, 77, 68}, {96, 10, 11, 12}, {99, 10, 11, 12}};
for (int a = 0; a < inputMatrix.length; a++) {
// create arrays stream from the elements in the row and filter odd and even elements
int oddCount = (int) Arrays.stream(inputMatrix[a]).filter(x -> x % 2 != 0).count();
int evenCount = (int) Arrays.stream(inputMatrix[a]).filter(x -> x % 2 == 0).count();
System.out.println("Row " + (a + 1) + " has " + oddCount + " odd elements and " + evenCount + " even elements");
}
}
}
輸出
Row 1 has 2 odd elements and 2 even elements Row 2 has 2 odd elements and 2 even elements Row 3 has 1 odd elements and 3 even elements Row 4 has 2 odd elements and 2 even elements
在這篇文章中,我們探討了使用 Java 程式語言查詢矩陣每一行中奇數和偶數元素個數的不同方法。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP