使用流和过滤器查找数组中最大奇数的 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