使用流和過濾器查詢陣列中最大奇數的 Java 程式
在本節中,我們將編寫一個 Java 程式,使用流和過濾器在陣列中查詢最大奇數。奇數是指不能被2整除的數,或者這些數除以2的餘數為1。換句話說,可以用2n+1的形式表示。我們將找到陣列中的最大奇數。
問題陳述
用Java編寫一個程式,使用流和過濾器查詢陣列中最大奇數 -
輸入array = {1, 7, 2, 3, 9, 5, 10}輸出
Maximum odd number is 9
從上面的例子可以看出,在陣列中,最大奇數是 9。
使用的方法
stream() - 它用於建立元素流,以便我們可以使用 filter()、map()、reduce() 等方法來處理資料
Arrays.stream(collection)
filter() - 它用於從流中過濾資料,即根據條件從流中選擇特定的元素。它返回布林值。
Streamobject.filter(condition)
reduce() - 它用於減少元素的數量,並根據二元運算返回單個結果數。
Streamobject.reduce(initial value, binary operation)
我們現在將討論使用流和過濾器在陣列中查詢最大奇數的不同方法,並使用 Java 中的程式碼實現進行說明。
方法 1:使用 stream() 和 filter() 以及 max()
以下是使用 stream() 和 filter() 以及 max() 方法在陣列中查詢最大奇數的步驟 -
-
初始化一個數組,並使用stream() 方法為陣列建立流。
-
使用filter 方法()和作為引數的條件來過濾流,以便從陣列中篩選出奇數。
-
使用max() 方法返回最大奇數,否則如果不存在奇數,則使用orElse() 方法列印-1。
示例
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() 方法過濾出流中存在的奇數,並在結果流上使用max() 方法查詢流中所有奇數的最大值。如果流中不存在奇數,則我們使用orElse函式,它返回輸入引數的值。然後我們列印maximumOdd變數中儲存的值。
方法 2:使用 stream()、filter() 和 reduce() 方法
以下是使用stream()、filter() 和 reduce() 方法在陣列中查詢最大奇數的步驟 -
-
初始化一個數組,並使用stream() 方法為陣列建立流
-
使用filter() 方法和作為引數的條件來過濾流,以便從陣列中篩選出奇數。
-
使用reduce() 方法查詢最大奇數。
-
使用三元運算子列印最大奇數,否則如果不存在奇數,則列印-1。
示例
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
程式碼解釋
在這個例子中,我們首先初始化一個數組。然後我們使用stream() 方法將陣列轉換為流,然後對流使用filter() 方法過濾出流中存在的奇數,並在結果流上使用reduce() 方法查詢流中所有奇數的最大值。如果流中不存在奇數,則maximumOdd數包含Integer.MIN_VALUE。然後我們使用三元運算?並檢查maximumOdd變數是否包含Integer.MIN_VALUE。如果它包含Integer.MIN_VALUE,則我們列印-1,否則我們列印maximumOdd變數中儲存的值。
因此,在本文中,我們討論瞭如何在 Java 中使用不同的方法使用 Stream 和 Filter 在陣列中查詢最大奇數。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP