java 函数接口提供多种通用实现,包括:1. predicate 用于布尔求值;2.. consumer 用于接受输入并执行副作用;3. function 将输入映射到输出;4. supplier 用于提供值;5.. bipredicate 布尔求值用于两个输入值。这些实现可以简化代码,提高可读性,并将其组织成可重用块。
Java 函数接口的常见实现
函数接口只包含一种抽象方法。Java 可用于简化代码,提高可读性,为函数接口提供多种通用实现。
1. Predicate
立即学习“Java免费学习笔记(深入);
Predicate 接口用于布尔求值输入值。
import java.util.function.Predicate; public class Example { public static void main(String[] args) { // 检查数字是否大于 10 Predicate<Integer> Greaterthan = n -> n > 10; System.out.println(Greaterthan.test(12)); // true } }
2. Consumer
Consumer 接口用于接收输入并可能执行副作用(如打印)。
import java.util.function.Consumer; public class Example { public static void main(String[] args) { // 打印数字 Consumer<Integer> printNumber = n -> System.out.println(n); printNumber.accept(12); // 输出 12 } }
3. Function
Function 接口用于将输入映射到输出。
import java.util.function.Function; public class Example { public static void main(String[] args) { // 将数字加 1 Function<Integer, Integer> addOne = n -> n + 1; System.out.println(addOne.apply(12)); // 13 } }
4. Supplier
Supplier 接口用于提供不需要任何输入的值的值。
import java.util.function.Supplier; public class Example { public static void main(String[] args) { // 提供当前时间 Supplier<String> getCurrentTime = () -> new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); System.out.println(getCurrentTime.get()); // 输出当前时间 } }
5. BiPredicate
BiPredicate 布尔求值用于接口两个输入值。
import java.util.function.BiPredicate; public class Example { public static void main(String[] args) { // 检查两个数字是否大于两个数字 10 BiPredicate<Integer, Integer> bothGreaterthan = (n, m) -> n > 10 && m > 10; System.out.println(bothGreaterthan.test(12, 15)); // true } }
实战案例
import java.util.List; import java.util.stream.Collectors; public class Example { public static void main(String[] args) { // 获取大于 10 的数字列表 List<Integer> numbers = List.of(5, 8, 12, 17, 20); List<Integer> filteredNumbers = numbers.stream() .filter(n -> n > 10) .collect(Collectors.toList()); System.out.println(filteredNumbers); // 输出 [12, 17, 20] } }
通过使用函数接口,我们可以将代码逻辑组织成可重用的块,从而提高代码的可读性,简化维护。
以上是Java 函数接口的常见实现是什么?详情请关注图灵教育的其他相关文章!