欢迎访问宙启技术站
智能推送

Java函数的Lambda表达式使用方式和示例

发布时间:2023-10-30 16:10:35

Java 8引入了Lambda表达式,它是一种更简洁、更易读的函数式编程方式。Lambda表达式可以作为函数的参数传递,也可以作为返回值返回。

使用Lambda表达式的语法格式为:

(parameter list) -> {

body

}

其中,参数列表可以为空或非空,如果只有一个参数,则可以省略参数的括号。箭头“->”将参数列表和函数体分隔开,函数体可以是一个表达式,也可以是一个代码块。

下面是几个使用Lambda表达式的示例:

1. 无参数的Lambda表达式

Runnable runnable = () -> {
    System.out.println("This is a lambda expression.");
};

上面的代码是一个Runnable接口的实现,实现了run方法。由于run方法没有参数,所以可以省略参数列表的括号。

2. 有参数的Lambda表达式

ActionListener listener = event -> {
    System.out.println("Button clicked.");
};

上面的代码是一个ActionListener接口的实现,实现了actionPerformed方法。actionPerformed方法有一个参数event,可以在Lambda表达式中使用。

3. Lambda表达式作为参数传递

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(number -> {
    System.out.println(number);
});

上面的代码使用Lambda表达式作为forEach方法的参数,打印出列表中的每个元素。

4. Lambda表达式作为返回值返回

public static Comparator<String> getComparator() {
    return (String s1, String s2) -> s1.length() - s2.length();
}

上面的代码定义了一个getComparator方法,返回一个Comparator对象。Comparator是一个函数式接口,可以使用Lambda表达式作为实现。Lambda表达式比较了两个字符串的长度,返回长度较小的字符串。

Lambda表达式可以使代码更加简洁和易读,尤其是在使用函数式接口的方法中。它可以大大减少代码的冗余,并提高代码的可读性和可维护性。在使用Lambda表达式时,需要注意参数的类型推断和返回值的推断,确保代码的正确性。