使用流和过滤器在数组中查找最大奇数的Java程序

2023年 9月 9日 49.2k 0

使用流和过滤器在数组中查找最大奇数的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程序的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论