java中有4种内置的核心函数式接口

1.消费型接口  Consumer<T> T表示的是参数类型  void accept(T t); 该抽象方法 有参数 T表示参数类型 该方法无返回值
2.共给型接口  Supplier<T> T表示的是参数类型   T get();  该抽象方法 无参数 有返回值(T表示的是返回类型)
3.函数型接口  Function<T, R> T表示的是输入参数 R表示输出参数 R apply(T t); 该抽象方法 有参数(T表示的是参数类型) 有返回值(R表示的是返回值)
4.断定型接口  Predicate<T> T表示的是参数类型    boolean test(T t); 有参数 有返回值  T表示参数类型

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class FunctionDemo {
    public static void main(String[] args) {
       // 1.消费型接口  Consumer<T> T表示的是参数类型  void accept(T t); 该抽象方法 有参数 T表示参数类型 该方法无返回值
        //案列1 : 消费学生信息并打印到控制台
        //匿名内部类的方法实现
//        Consumer c=     new Consumer<Student>() {
//            @Override
//            public void accept(Student student) {
//                System.out.println(student);
//            }
//        };
//        c.accept(new Student("张三",18));
        //使用lambda表达式实现
//        Consumer c1=a-> System.out.println(a);
//        c1.accept(new Student("李四",19));

        //2.共给型接口  Supplier<T> T表示的是参数类型   T get();  该抽象方法 无参数 有返回值(T表示的是返回类型)
        //案列2: 返回一个学生对象
        //匿名内部类的方法实现

//        Supplier<Student> s = new Supplier<Student>() {
//            @Override
//            public Student get() {
//                Student s = new Student("王五", 20);
//                return s;
//            }
//        };
//        Student student = s.get();
//        System.out.println(student);
//        //使用lambda表达式实现
//        Supplier<Student> s1=()->new Student("a",19);
//        Student student1 = s1.get();
//        System.out.println(student1);
    //3.函数型接口  Function<T, R> T表示的是输入参数 R表示输出参数 R apply(T t); 该抽象方法 有参数(T表示的是参数类型) 有返回值(R表示的是返回值)
        //案列3:通过学生id查询对应学生信息
        //匿名内部类的方法实现
//        Function<Integer, Student> f = new Function<Integer, Student>() {
//            @Override
//            public Student apply(Integer id) {
//                Student s = Student.getByIdStudent(id);
//                return s;
//            }
//        };
//        Student a = f.apply(3);
//        System.out.println(a);
//        //使用lambda表达式实现
//        Function<Integer, Student> ss=id->Student.getByIdStudent(id);
//        Student apply = ss.apply(2);
//        System.out.println(apply);

        //4.断定型接口  Predicate<T> T表示的是参数类型    boolean test(T t); 有参数 有返回值  T表示参数类型
        //案列:判断两个学生是否是同龄人  也就是年龄是否相同
//        Predicate<Student> z = new Predicate<Student>() {
//            @Override
//            public boolean test(Student student) {
//                Student s = new Student(4, "zl", 18);
//                return student.age == s.age;
//            }
//        };
//        Student s1 = Student.getByIdStudent(2);
//        System.out.println(s1);
//        boolean test = z.test(s1);
//        System.out.println(test);
        //使用lambda表达式实现
//        Student s = new Student(4, "zl", 18);
//        Predicate<Student> z1=a->a.age==s.age;
//        Student s11 = new Student(5, "xx", 18);
//        boolean test1 = z1.test(s11);
//        System.out.println(test1);


    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值