java 函数式接口使用案例
Java的函数式接口是指只包含一个抽象方法的接口。在Java 8之前,接口中只能声明抽象方法,而在Java 8中引入了函数式接口的概念,使得我们可以使用Lambda表达式和方法引用来实现接口中的抽象方法。函数式接口在函数式编程中具有重要作用,可以简化代码,提高代码可读性和可维护性。下面列举了10个使用Java函数式接口的案例。
1. Runnable接口
Runnable接口是Java标准库中的一个函数式接口,它只包含一个抽象方法run()。我们可以使用Lambda表达式来创建一个Runnable对象,实现多线程编程。
```java
Runnable runnable = () -> {
// 执行任务的代码
};
```
2. Comparator接口
Comparator接口是Java标准库中的一个函数式接口,它定义了比较两个对象的方法compare()。我们可以使用Lambda表达式来创建一个Comparator对象,实现对象的比较。
```java
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("cherry");
Comparator<String> comparator = (s1, s2) -> s1pareTo(s2);
Collections.sort(list, comparator); // 按照字母顺序排序
```
3. ActionListener接口
ActionListener接口是Java标准库中的一个函数式接口,它定义了处理事件的方法actionPerformed()。我们可以使用Lambda表达式来创建一个ActionListener对象,实现事件处理。
```java
JButton button = new JButton("Click me");
button.addActionListener(e -> {
// 处理事件的代码
});
```
4. Predicate接口
Predicate接口是Java标准库中的一个函数式接口,它定义了对一个输入参数进行判断的方法test()。我们可以使用Lambda表达式来创建一个Predicate对象,实现条件判断。
```java
Predicate<Integer> isEven = n -> n % 2 == 0;
System.out.st(2)); // 输出true
System.out.st(3)); // 输出false
```
5. Function接口
Function接口是Java标准库中的一个函数式接口,它定义了对一个输入参数进行转换的方法apply()。我们可以使用Lambda表达式来创建一个Function对象,实现数据转换。
```java
Function<Integer, String> intToString = n -> String.valueOf(n);
System.out.println(intToString.apply(123)); // 输出"123"
```
6. Supplier接口
Supplier接口是Java标准库中的一个函数式接口,它定义了产生一个结果的方法get()。我们可以使用Lambda表达式来创建一个Supplier对象,实现数据的提供。
```java
Supplier<Integer> randomNumber = () -> new Random().nextInt(100);
System.out.()); // 输出一个随机数
```
7. Consumer接口
Consumer接口是Java标准库中的一个函数式接口,它定义了对一个输入参数进行操作的方法accept()。我们可以使用Lambda表达式来创建一个Consumer对象,实现数据的处理。
```java
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("cherry");
Consumer<String> printUpperCase = s -> System.out.UpperCase());
list.forEach(printUpperCase); // 输出大写字母
```
8. BiFunction接口
BiFunction接口是Java标准库中的一个函数式接口,它定义了对两个输入参数进行转换的方法apply()。我们可以使用Lambda表达式来创建一个BiFunction对象,实现两个数据的转换。
```java
BiFunction<Integer, Integer, Integer> sum = (a, b) -> a + b;
System.out.println(sum.apply(2, 3)); // 输出5
```
9. UnaryOperator接口
UnaryOperator接口是Java标准库中的一个函数式接口,它继承自Function接口,表示对一
个输入参数进行操作并返回结果。我们可以使用Lambda表达式来创建一个UnaryOperator对象,实现数据的操作。
```java
UnaryOperator<Integer> square = n -> n * n;
System.out.println(square.apply(3)); // 输出9
```
10. BiPredicate接口
java的tostring方法BiPredicate接口是Java标准库中的一个函数式接口,它定义了对两个输入参数进行判断的方法test()。我们可以使用Lambda表达式来创建一个BiPredicate对象,实现两个数据的条件判断。
```java
BiPredicate<Integer, Integer> isSumEven = (a, b) -> (a + b) % 2 == 0;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论