Java 使用流与过滤器找到数组中的最大奇数

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方法和条件参数对数组中的奇数进行过滤。

  • 使用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()方法过滤流,参数为条件来过滤数组中的奇数。

  • 使用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中的流和过滤器找到数组中的最大奇数,采用了不同的方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程