在本節中,我們將編寫一個 Java 程序,使用流和過濾器來尋找數組中的最大奇數。 奇數是不能被「2」整除的數字,或當這些數字除以「2」時餘數為1。換句話說可以寫成‘2n 1’的形式。我們將找到數組中的最大奇數。
Input: array = {1, 7, 2, 3, 9, 5, 10} Output: Maximum odd number is 9
從上面的範例來看,陣列中最大奇數是 9。
Input: array = {11, 17, 12, 13, 19, 15, 20} Output: Maximum odd number is 19
從上面的例子來看,陣列中最大奇數是19。
stream() - 它用於建立元素流,以便我們可以使用filter()、map()、reduce()等方法來處理資料
Arrays.stream(collection)
filter() - 用於過濾流中的數據,即根據條件從流中選擇特定元素。它返回布林值。
treamobject.filter(condition)
reduce() - 用於減少元素數量並基於二元運算傳回單一結果數。
Streamobject.reduce(initial value, binary operation)
我們現在將討論使用流和過濾器(使用 Java 中的程式碼實作)來尋找數組中最大奇數的不同方法。
初始化陣列並使用stream()方法為陣列建立流
使用filter method()和參數作為條件來過濾流,以從陣列中過濾出奇數。
使用 max() 方法傳回最大奇數,如果沒有奇數,則使用 orElse() 方法列印 -1。
在此範例中,我們首先初始化一個陣列。然後我們使用“stream()”方法將數組轉換為流,然後在流上使用“filter()”方法過濾掉流中存在的奇數,在結果流上我們使用max() 方法來查找流中所有奇數的最大值。如果流中不存在奇數,則我們使用「orElse」函數傳回輸入參數的值。然後我們列印儲存在「maximumOdd」變數中的值。
import java.util.*; public class Main { public static void main(String[] args) { int[] array = {1, 7, 2, 3, 9, 5, 10}; int maximumOdd = Arrays.stream(array) .filter(n -> n % 2 != 0) .max() .orElse(-1); System.out.println("Maximum odd number is: " +maximumOdd); } }
Maximum odd number is: 9
初始化陣列並使用stream()方法為陣列建立流
使用filter method()和參數作為條件來過濾流,以從陣列中過濾出奇數。
使用reduce()方法求最大奇數
#使用三元運算子列印最大奇數,如果沒有奇數則列印-1。
在此範例中,我們首先初始化一個陣列。然後我們使用“stream()”方法將數組轉換為流,然後在流上使用“filter()”方法過濾掉流中存在的奇數,在結果流上我們使用reduce()方法來查找流中所有奇數的最大值。如果流中不存在奇數,則 MaximumOdd 數包含 Integer.MIN_VALUE。然後我們使用三元運算‘?’並檢查‘maximumOdd’變數是否包含Integer.MIN_VALUE。如果它包含 Integer.MIN_VALUE,那麼我們列印 -1,否則我們列印「maximumOdd」變數中儲存的值。
import java.util.*; public class Main { public static void main(String[] args) { int[] array = {1, 7, 2, 3, 9, 5}; int maximumOdd = Arrays.stream(array) .filter(n -> n % 2 != 0) .reduce(Integer.MIN_VALUE, Integer::max); System.out.println("Maximum odd number in the given array is " + (maximumOdd != Integer.MIN_VALUE ? maximumOdd : -1)); } }
Maximum odd number in the given array is 9
因此,在本文中,我們討論瞭如何使用 Java 中的流和過濾器使用不同的方法來尋找數組中的最大奇數。
以上是使用流和過濾器在數組中找到最大奇數的Java程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!