Java的函数式接口提供了更简洁和声明性的方式来处理数据。以下是一些使用Predicate<T>
、Function<T, R>
、Consumer<T>
和Supplier<T>
的代码示例
Predicate(谓词语句)
import java.util.function.Predicate; public class PredicateExample { public static void main(String[] args) { // 创建一个Predicate用于判断字符串长度是否大于5 Predicate<String> stringLengthCheck = (s) -> s.length() >= 5; // 使用Predicate测试字符串 System.out.println(stringLengthCheck.test("Hello")); // 输出:true System.out.println(stringLengthCheck.test("Hi")); // 输出:false // 可以将多个Predicate通过逻辑运算组合起来 Predicate<String> startsWithA = s -> s.startsWith("A"); Predicate<String> containsB = s -> s.contains("B"); // 逻辑与操作 Predicate<String> combinedPredicate = startsWithA.and(containsB); System.out.println(combinedPredicate.test("AppleBanana")); // 输出:true System.out.println(combinedPredicate.test("An Apple")); // 输出:false System.out.println(combinedPredicate.test("A Banana")); // 输出:true } }
Function<T, R>(转换或映射)
import java.util.function.Function; public class FunctionExample { public static void main(String[] args) { // 创建一个Function,用于将字符串转为大写 Function<String, String> toUpperCase = String::toUpperCase; // 应用Function到输入值上 String input = "hello world"; String output = toUpperCase.apply(input); System.out.println(output); // 输出:HELLO WORLD // 更复杂的转换,例如将字符串转换为整数并计算平方 Function<String, Integer> stringToInt = Integer::parseInt; Function<Integer, Integer> square = num -> num * num; Integer result = square.compose(stringToInt).apply("10"); System.out.println(result); // 输出:100 } }
Consumer(消费型接口,接收一个参数,无返回值)
import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; public class ConsumerExample { public static void main(String[] args) { List<String> names = new ArrayList<>(); names.add("Alice"); names.add("Bob"); names.add("Charlie"); // 创建一个Consumer,用于打印列表中的元素 Consumer<String> printer = name -> System.out.println(name); // 对列表中的每个元素应用Consumer names.forEach(printer); // 输出: // Alice // Bob // Charlie } }
Supplier(供应者接口,无参数,产生一个结果)
import java.util.function.Supplier; public class SupplierExample { public static void main(String[] args) { // 创建一个Supplier,用于生成随机数 Supplier<Integer> randomNumber = () -> (int)(Math.random() * 100); // 调用Supplier获取结果 int number = randomNumber.get(); System.out.println(number); // 每次运行可能输出不同的随机数(0-99之间) // 或者创建一个简单的返回固定字符串的Supplier Supplier<String> greeting = () -> "Hello, World!"; System.out.println(greeting.get()); // 输出:Hello, World! } }
标签:Predicate,JAVA,示例,System,接口,Supplier,println,public,out From: https://www.cnblogs.com/cuipengchong/p/18026977