Java Lambda 表达式中的 if 条件

10 Sept 2024 | 4 分钟阅读

Lambda 表达式是 Java 8 引入的最强大的特性之一。它们是表达函数的简洁方式,可以使您的代码更具可读性和可维护性。Lambda 表达式一个鲜为人知的功能是可以使用条件语句。在本文中,我们将探讨如何在 Java 的 Lambda 表达式中使用 if 条件。

什么是 Lambda 表达式?

Lambda 表达式是一种内联定义函数的方式,无需单独的方法。它们本质上是编写匿名内部类的简写。Lambda 表达式具有以下语法:

参数是函数输入参数的逗号分隔列表,主体是函数调用时执行的代码。-> 运算符将参数列表与主体分开。

例如,假设我们想定义一个函数,它接受两个整数并返回它们的和。我们可以使用 Lambda 表达式如下:

此 Lambda 表达式接受两个整数作为输入(int a 和 int b)并返回它们的和(return a + b;)。

在 Lambda 表达式中使用 If 条件

让我们看看如何使用 if 条件。我们可以在 Lambda 表达式的主体中使用三元运算符(?:)来创建条件表达式。三元运算符接受三个操作数:一个布尔条件,一个在条件为真时要评估的表达式,以及一个在条件为假时要评估的表达式。

例如,假设我们想定义一个函数,它接受一个整数并返回“positive”,如果它大于零,“negative”,如果它小于零,以及“zero”,如果它等于零。我们可以使用带有条件表达式的 Lambda 表达式如下:

此 Lambda 表达式接受一个整数作为输入(int n)并根据其值返回一个字符串。如果 n 大于零,则返回“positive”。如果 n 小于零,则返回“negative”。如果 n 等于零,则返回“zero”。

让我们看一个在 Lambda 表达式中使用 if 条件的完整示例。

假设我们有一个整数列表,我们想过滤掉负数并打印正数。我们可以使用带有条件表达式的 Lambda 表达式来实现这一点:

LambdaIfExample.java

在此示例中,我们使用 Arrays.asList() 方法创建了一个整数列表。然后,我们使用 stream() 方法创建整数流,这使我们能够将 Lambda 表达式应用于列表的每个元素。我们使用 filter() 方法过滤掉负数(n -> n >= 0),然后使用 forEach() 方法将 Lambda 表达式应用于每个剩余的正数或零。

forEach() 方法中的 Lambda 表达式使用条件表达式来打印数字是正数还是零。如果数字大于零(n > 0),则打印一条消息说明它是正数。否则,如果数字为零,则打印一条消息说明它是零。

输出

2 is positive
4 is positive
6 is positive
8 is positive
10 is positive
0 is zero

正如我们所见,负数已被过滤掉,正数和零数字已打印并带有适当的消息。

结论

在本文中,我们已经了解了如何在 Java 的 Lambda 表达式中使用 if 条件。我们可以在 Lambda 表达式的主体中使用三元运算符(?:)来创建条件表达式。这使我们能够编写简洁且富有表现力的代码,从而使我们的程序更具可读性和可维护性。

Lambda 表达式是 Java 8 的一个强大功能,掌握它们可以使您成为更高效、更出色的 Java 开发人员。通过在 Lambda 表达式中使用 if 条件,您可以编写更复杂、更复杂的函数,以处理各种用例。

希望本文能帮助您了解如何在 Java 的 Lambda 表达式中使用 if 条件。编码愉快!