如何在java 8 stream表达式实现if/else逻辑

在Java 8中,Stream API已成为编写更具可读性和功能性的代码的核心。

Java 8中,Stream API已成为编写更具可读性和功能性的代码的核心。

在Stream API中实现if/else逻辑可以使用filter()和forEach()方法配合完成。

在filter()中我们可以输入lambda表达式作为参数,作为逻辑判断的条件。而在forEach()中,我们可以输入lambda表达式来处理符合条件的流。

下面为你提供两个代码示例以更好地理解如何在Java 8 Stream中实现if/else逻辑。

示例 #1

List<String> fruits = Arrays.asList("Apple", "Banana", "Mango", "Orange");

fruits.stream()
      .filter(fruit -> "Banana".equals(fruit))
      .findFirst()
      .ifPresent(fruit -> System.out.println("I found a Banana"));

在上面的示例中,我们使用Stream过滤器和lambda表达式,通过filter()方法找到“Banana”这个字符串,并使用findFirst()方法获取找到的第一个元素,然后使用ifPresent()方法来判断结果。

如果条件为真,将执行lambda表达式,打印输出“I found a Banana”。

示例 #2

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

numbers.stream()
       .mapToInt(i -> i)
       .filter(i -> i % 2 == 0)
       .forEach(i -> {
           System.out.print(i + " is ");
           System.out.println(i % 4 == 0 ? "divisible by 4" : "not divisible by 4");
       });

在上面的示例中,我们使用Stream.mapToInt()方法,将Stream转换为IntStream,并使用filter()方法筛选出偶数。而在forEach()方法中,我们使用lambda表达式来判断数字能否被4整除,并分别输出是否满足条件的字符串。

这两个示例都展示了如何在Java 8 Stream中实现if/else逻辑。使用Stream API可以让我们更加有效地处理集合中的元素,编写更具可读性和功能性的代码。

本文标题为:如何在java 8 stream表达式实现if/else逻辑

基础教程推荐