在本節中,我們將編寫一個 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()和reduce()方法
初始化陣列並使用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中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版
好用的JavaScript開發工具