在本节中,我们将编写一个 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无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3汉化版
中文版,非常好用

Dreamweaver Mac版
视觉化网页开发工具