首頁 > Java > java教程 > 使用流和過濾器在數組中找到最大奇數的Java程序

使用流和過濾器在數組中找到最大奇數的Java程序

WBOY
發布: 2023-09-09 19:49:02
轉載
1316 人瀏覽過

使用流和過濾器在數組中找到最大奇數的Java程序

在本節中,我們將編寫一個 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中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板