首先我们来介绍Lambda表达式。Lambda表达式是Java 8中引入的新特性,可以使得代码更加简洁、易读、易维护、可重用性更高,是一种将行为作为方法参数传递的方法。Lambda表达式由参数、箭头和函数体组成,语法结构如下:
(parameter1, parameter2, …) -> { // 参数列表,可以为空,如果不为空则必须要使用括号
// 函数体
}
Lambda表达式一般用于函数式接口中,也就是只有一个抽象方法的接口。下面我们来看两个Lambda表达式的示例。
示例一:使用Lambda表达式遍历集合
List<String> languages = Arrays.asList("Java", "C", "Python");
languages.forEach(language -> System.out.println(language));
上面的代码通过Lambda表达式遍历了一个字符串类型的集合,输出了集合中的每个元素。语法结构中,语句language -> System.out.println(language)
即为Lambda表达式,实现了Consumer类型的函数式接口的方法accept,把输入的元素打印在控制台上。forEach是Iterable接口中的循环方法,用于迭代集合中的元素。
示例二:使用Lambda表达式进行排序
List<Integer> numbers = Arrays.asList(3, 2, 5, 4, 1);
numbers.sort((num1, num2) -> num1 - num2);
System.out.println(numbers);
上述代码使用了Lambda表达式进行了排序。sort方法使用了Comparator接口,Lambda表达式(num1, num2) -> num1 - num2
实现了Comparator接口中的int compare(T o1, T o2)方法,即比较num1和num2的大小,如果num1大于num2,返回正数;如果num1等于num2,返回0;如果num1小于num2,返回负数。最终,根据Lambda表达式的结果,Collections.sort()方法对numbers进行排序,输出结果为[1, 2, 3, 4, 5]
。
除了上述示例,Lambda表达式还可以在Stream API、多线程等场景中使用。这里仅作简单介绍,具体使用方法可参考相关文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中常用的Lambda表达式案例解析 - Python技术站