JDK8内置的核心函数式接口

1、消费型接口

Conusmer<T>: 消费型接口----对象类型为T的对象应用操作,包含方法:
	 void accept(T t);
    
    @Test
    public void test13(){
        ConsumerInter("我是消费性接口",(t)-> System.out.println(t));
    }

    public void ConsumerInter(String str,Consumer<String> con){
        con.accept(str);
    }

2、供给型接口

Supplier<T> :供给型接口----返回类型为T的对象,包含方法:
	T get();


 @Test
    public void test14(){
        List<Integer> list = SupplierInter(10, () -> (int) (Math.random() * 100));
        for(Integer result : list){
            System.out.println(result);
        }

    }


    public List<Integer> SupplierInter(int num, Supplier<Integer> sup){
        List<Integer> list = new ArrayList<>();
        for(int i = 0; i < num; i++){
            Integer result = sup.get();
            list.add(result);
        }

        return list;

    }

3、函数式接口

Function<t,R>:函数式接口---对象类型为T的对象应用操作,并返回结果,结果是R类型的对象。
	R apply(T t);
	
@Test
    public void test15(){
        Employees employees = new Employees();
        employees.setName("我是函数式接口");
        employees.setAge(24);
        employees.setSalary(9999.99);
        String result = FunctionInter(employees, (e) -> e.getName());
        System.out.println(result);
    }


    public String FunctionInter(Employees employees, Function<Employees,String> fun){
        return fun.apply(employees);
    }

4、函数式接口

Predicate<T> 断言式接口---确定类型为T的对象是否满足约束,并返回booleanboolean test(T t);


@Test
    public void test16(){
        List<Integer> list = new ArrayList<>();
        list.add(23);
        list.add(21);
        list.add(25);
        list.add(20);
        List<Integer> integerList = PredictInter(list, (pre) -> pre > 24);
        for(Integer i : integerList){
            System.out.println(i);
        }

    }


    public List<Integer> PredictInter(List<Integer> list, Predicate<Integer> pre){
        List<Integer> arrayList = new ArrayList<>();
        for(Integer in : list){
            if(pre.test(in)){
                arrayList.add(in);
            }
        }

        return arrayList;
    }

5、其它函数接口

函数试接口参数类型返回类型用途
BiFunction<T,R,U>T,UR对类型为T,U参数应用操作,返回R类型的结果,方法为R apply(T t,U u)
UnaryOperator(Function子接口)TT对类型 为T的对象进行一元运算,并返回T类型的结果,方法为:T apply(T t)
BinaryOperator(BiFunction 子接口)T,TT对类型为T的对象进行二元运算,并返回T类型的结果。包含方法为:T apply(T t1,T t2)
BiConsumer<T,U>T,Uvoid对类型为T,U参数引用操作,包含方法为:void accept(T t,U u)

其中根据自己的需要选取合适的函数接口,其中前4个为JDK8的4大核心函数式接口,理解前4个其余函数式接口自热而然都懂了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值