Lambda表达式在Java函数中的应用实例
Lambda表达式是Java 8引入的重要新特性之一,它可以简化代码,提高代码的可读性和可维护性。本文将介绍Lambda表达式在Java函数中的应用实例,以帮助读者更好地理解Lambda表达式的用法。
一、使用Lambda表达式对集合进行遍历
使用Lambda表达式可以很方便地对集合进行遍历,下面是一个示例:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.forEach(n -> System.out.println(n));
上面的代码首先定义了一个包含5个元素的整数列表,然后使用Lambda表达式对列表进行遍历并打印输出。这里的Lambda表达式“n -> System.out.println(n)”表示将参数n传递给System.out.println方法,并将其打印输出。
二、使用Lambda表达式对集合进行过滤
Lambda表达式还可以用于过滤集合中的元素,下面是一个示例:
List<String> list = Arrays.asList("apple", "banana", "orange", "pear", "kiwi");
List<String> filteredList = list.stream().filter(fruit -> fruit.length() > 4).collect(Collectors.toList());
System.out.println(filteredList);
上面的代码首先定义了一个包含5个元素的字符串列表,然后使用Lambda表达式对列表中长度大于4的元素进行过滤,并将过滤后的元素存储在一个新的列表中。这里使用了Java 8中新增的Stream API,Stream对象可以使我们更加方便地处理集合数据。
三、使用Lambda表达式实现计算器功能
Lambda表达式还可以用于实现计算器等功能,下面是一个计算器实现的示例:
public class Calculator {
interface IntegerMath {
int operation(int a, int b);
}
public int operateBinary(int a, int b, IntegerMath op) {
return op.operation(a, b);
}
public static void main(String[] args) {
Calculator myApp = new Calculator();
IntegerMath addition = (a, b) -> a + b;
IntegerMath subtraction = (a, b) -> a - b;
System.out.println("40 + 2 = " + myApp.operateBinary(40, 2, addition));
System.out.println("20 - 10 = " + myApp.operateBinary(20, 10, subtraction));
}
}
上面的代码定义了一个Calculator类,其中包含一个IntegerMath接口,IntegerMath接口中包含一个operation方法,用于执行整数的加减乘除等操作。在main方法中,我们创建了两个Lambda表达式分别表示加法和减法操作,然后传递给operateBinary方法执行。
四、使用Lambda表达式实现多线程
Lambda表达式还可以用于实现多线程,下面是一个使用Lambda表达式实现线程的示例:
public class LambdaExample {
public static void main(String[] args) {
// 使用Lambda表达式实现Runnable接口
Runnable runnable = () -> {
System.out.println("Lambda expression running...");
};
// 创建并启动线程
Thread thread = new Thread(runnable);
thread.start();
}
}
上面的代码使用Lambda表达式实现了一个Runnable接口,其中的Lambda表达式表示线程要执行的操作。最后创建一个线程,将Lambda表达式作为参数传递给Thread类的构造方法中,然后启动线程。
总结
本文介绍了Lambda表达式在Java函数中的应用实例,包括使用Lambda表达式对集合进行遍历和过滤、使用Lambda表达式实现计算器功能以及使用Lambda表达式实现多线程。通过这些示例,我们可以更好地理解和掌握Lambda表达式的用法,提高代码的可读性和可维护性。
