如何找出數組中的奇數和偶數?
1. 概述
在 Java 程式設計中,一項經常遇到的任務是區分數組中的奇數和偶數。掌握這項技術可以增強高效處理資料和實現更複雜演算法的能力。
在本教程中,我們將學習如何使用 Java 來尋找陣列中的奇數和偶數。
2. 奇數、偶數和模運算符
在編碼之前,了解如何將數字分類為奇數或偶數是基礎。用數學術語來說,偶數是可以被 2 整除的整數**,**例如 10 或 22。
在 Java 中,模運算子 (%) 通常用於檢查數字是奇數還是偶數。例如:
-
number % 2 == 0
表示該數字是偶數。 -
number % 2 != 0
表示該數字是奇數。
3. 使用循環來辨識奇數和偶數
為了識別數組中的奇數和偶數,我們可以使用循環迭代每個元素並確定其奇偶性。我們將在此方法中使用兩個單獨的方法: findEvenNumbersWithLoop(int[] numbers)
和findOddNumbersWithLoop(int[] numbers)
。
findEvenNumbersWithLoop(int[] numbers)
方法迭代數組並使用模運算子 (%) 檢查每個數字是否為偶數。如果「 number % 2 == 0″
計算結果為 true,則該數字將會加到偶數清單中。
相反, findOddNumbersWithLoop(int[] numbers)
方法執行類似的迭代,但檢查條件為「 number % 2 != 0
」的奇數。
讓我們實作這個方法:
public static List<Integer> findOddNumbersWithLoop(int[] numbers) {
List<Integer> oddNumbers = new ArrayList<>();
for (int number : numbers) {
if (number % 2 != 0) {
oddNumbers.add(number);
}
}
return oddNumbers;
}
public static List<Integer> findEvenNumbersWithLoop(int[] numbers) {
List<Integer> evenNumbers = new ArrayList<>();
for (int number : numbers) {
if (number % 2 == 0) {
evenNumbers.add(number);
}
}
return evenNumbers;
}
在此實作中, findEvenNumbersWithLoop(int[] numbers)
方法初始化一個ArrayList
來儲存偶數,並迭代輸入數組,將每個偶數加入到該列表中。 findOddNumbersWithLoop(int[] numbers)
方法的操作類似,但著重於收集奇數。
兩種方法都使用簡單的for
迴圈來處理陣列元素,使程式碼易於理解和維護。
4. 使用流識別奇數和偶數
在基於循環的方法的基礎上,我們可以使用 Java 的 Stream API 以更現代、更有效率的方式實現類似的結果。 Stream API 提供了一種更簡潔、更易讀的方式來處理陣列並識別奇數和偶數。
為了從基於循環的方法過渡,我們將建立兩個利用流的新方法: findEvenNumbersWithStream(int[] numbers)
和findOddNumbersWithStream(int[] numbers)
。這些方法使用流的過濾功能來簡化程式碼。
讓我們應用這個技術來解決辨識奇數和偶數的問題:
public static List<Integer> findEvenNumbersWithStream(int[] numbers) {
return Arrays.stream(numbers)
.filter(number -> number % 2 == 0)
.boxed()
.collect(Collectors.toList());
}
public static List<Integer> findOddNumbersWithStream(int[] numbers) {
return Arrays.stream(numbers)
.filter(number -> number % 2 != 0)
.boxed()
.collect(Collectors.toList());
}
在上面的程式碼中, findEvenNumbersWithStream(int[] numbers)
和findOddNumbersWithStream(int[] numbers)
方法利用 Stream API 來處理原始整數陣列。
findEvenNumbersWithStream(int[] numbers)
方法從陣列建立一個流,並套用過濾器只選擇偶數,其中「 number % 2 == 0
」。然後,它使用collect(Collectors.toList())
方法將這些過濾結果收集到List<Integer>
中。
類似地, findOddNumbersWithStream(int[] numbers)
方法過濾流以僅包含奇數,其中“ number % 2 != 0″
。然後以相同的方式將結果收集到List<Integer>
中。
5. 結論
在 Java 中識別數組中的奇數和偶數是一項簡單的任務,但它是廣泛應用程式的基本操作。透過使用模運算子以及簡單的循環或流過濾,我們可以有效地分離這些數字以用於各種用途。
本文討論的概念和程式碼範例為處理 Java 程式設計專案中的類似任務提供了堅實的基礎。
與往常一樣,原始碼可以在 GitHub 上取得。