四大核心函数式接口

1、jdk1.8的四大核心函数式接口

函数式接口参数类型返回值类型描述
ConsumerT处理一个接受T类型的值
FunctionTR处理T类型的值,并返回R类型的值
SupplierT接受一个T类型的值
PredicateTboolean处理T类型的值,返回true或者false

2、基本使用:

2.1、Consumer<T>接口,消费者接口

比如我们可以用来遍历:

创建一个实体类对象:

class Person {
    private int age;
    private String name;
	// 构造 get,set,toString
}

进行遍历(比如遍历年龄)

List<Person> list = new ArrayList<>();
        list.add(new Person(12, "fenfen"));
        list.add(new Person(11, "孙行者"));
        list.add(new Person(14, "猪八戒"));
        list.add(new Person(15, "张无忌"));
list.foreach(a->System.out.println(a.getAge))

2.2、Function<T,R>接口,表示接受一个参数并产生结果的函数

比如我们实现一个字符串转大写的例子

public static String toUppString(String str,Function<String,String> fun){
    return fun.apply(str);
}
// 进行调用
String str = toUppString("wesdfsdAAA",String::toUpperCase);
System.out.println(str);

2.3、Supplier<T>接口,供应商

比如我们需要返回10个随机数

   public static List<Integer> getNums(int num, Supplier<Integer> s) {
        List<Integer> integers = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            integers.add(s.get());
        }
        return integers;
    }
// 调用
	 List<Integer> nums = getNums(10, () -> new Random().nextInt(100));
     nums.forEach(System.out::println);

2.4、Predicate<T>接口,断言接口

返回集合中包含字符串的所有项组成的新集合

 public static List<String> filter(List<String> list, Predicate<String> p) {
        List<String> list1 = new ArrayList<>();
        for (String s : list) {
            if (p.test(s)) {
                list1.add(s);
            }
        }
        return list1;
    }
// 调用
        List<String> list = new ArrayList<>();
        list.add("avc");
        list.add("agb");
        list.add("arb");
        list.add("avc");
        List<String> avc = filter(list, (a) -> a.contains("avc"));
        avc.forEach(System.out::println);
posted @   JamieChyi  阅读(12)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示