java内置的4大核心函数式接口

//1.Consumer<T>:消费型接口:有参无返
@Test
public void test1(){
    ConsumerAge(9,(x) -> {
        if(x%2==0){
            System.out.println(x+"是偶数");
        }else{
            System.out.println(x+"是奇数");
        }
    });

}
//判断指定的数字是否为偶数
public void ConsumerAge(int num, Consumer<Integer> con){
    con.accept(num);
}


//2.Supplier<T>:供给型:无参有返
@Test
public void test2(){
    List<Integer> list=SupplierEgs(() -> {return new Random().nextInt(33)+1;});
    for(Integer it:list){
        System.out.println(it+"\t");
    }
}

//需求:随机产生一组(6个)1-33的红色球存入集合并返回
public List<Integer> SupplierEgs(Supplier<Integer> sup){
    List<Integer> list=new ArrayList<Integer>();
    for(int i=0;i<6;i++){
        list.add(sup.get());
    }
    return list;
}

//3.Function<T,R>:函数式接口,有参有返
@Test
public void test3(){
    List<Integer> oldlist= Arrays.asList(21,34,22,43,33,21,34,55,5,3,44);
    List<Integer> newlist=functionEgs(oldlist,(x) -> {
        List<Integer> retlist=new ArrayList<Integer>();
        for(Integer i:x){
            if(!retlist.contains(i)){
                retlist.add(i);
            }
        }
        return retlist;
    });
    for(Integer iter:newlist){
        System.out.println(iter+"\t");
    }
}

//需求:去掉1list集合中重复的元素,返回新的集合
public List<Integer> functionEgs(List<Integer> li, Function<List<Integer>,List<Integer>> fms){
    return fms.apply(li);
}


//4.Predicate:boolean
@Test
public void test4(){
    List<String> str=Arrays.asList("test","lucy","lisi","zs","gansu","lanzhou","tianshui");
    List<String> newStr=PredicateEgs(str,(x) -> x.contains("t"));
    for(String s:newStr){
        System.out.println(s);
    }
}

//需求:去掉字符串集合中包含有指定内容的字符元素
public List<String> PredicateEgs(List<String> str,Predicate<String> pr){
    List<String> list=new ArrayList<String>();
    for(String s:str){
        if(pr.test(s)){
            list.add(s);
        }
    }
    return list;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值