java8四大内置核心函数式接口

idea https://www.ajihuo.com/idea/4222.html

Java8 内置的四大核心函数式接口

Consumer :消费性接口
 void  accept(T t);

    @Test
    public void test9(){
        happy(100,(x)-> System.out.println("俞占喜欢大保健吗?每次都花费"+x+"元"));
    }
    public void happy(double m,Consumer consumer){
        consumer.accept(m);
    }

### Supplier:供给型接口

 T get();
    //Supplier<T> 供给型接口:
    @Test
    public void test10(){
        List<Integer> list=getNumList(10,()->(int)(Math.random()*10));
        list.forEach(System.out::println);
    }
    /*产生指定个数的整数,并放入集合中去*/
    public List<Integer> getNumList(int num, Supplier<Integer> supplier){
        List<Integer> list=new ArrayList<>();
        for (int i = 0; i <num ; i++) {
            Integer integer=supplier.get();
            list.add(integer);
        }
        return list;
    }
Funcation<T,R>:函数型接口
 R  apply(T t);
    /*函数型接口*/
    @Test
    public void test11(){
        String m=functionStr("\t\t\t    我爱北京天安门,天安门上广场飞,伟大领域 ",(str)->str.trim());
        System.out.println(m);
    }
    /*字符串去空格*/
    public String functionStr(String str, Function<String,String> function){
        return  function.apply(str);
    }
Predicate: 断言型接口
 boolean test(T t);
  @Test
    public void test12(){
        List<String> list=Arrays.asList("hahahah","你是皇上","白人自新","校下","?");
        List<String> predicate = predicate(list, (x) -> x.length() > 2);
        predicate.forEach(System.out::println);
    }
    /*将满足条件的字符串放到集合中去*/
    public List<String> predicate(List<String> list, Predicate<String> predicate){
        List<String> list1=new ArrayList<>();
        for (String str:list) {
            if (predicate.test(str)){
                list1.add(str);
            }
        }
        return list1;
    }

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值