lambda之四大内置型函数接口

lambda是一个匿名函数

//匿名内部类
Collections.sort(list2, new Comparator<User>() {
            @Override
            public int compare(User o1, User o2) {
                return o1.getName().compareTo(o2.getName());
            }
//使用lambda表达式
Collections.sort(list2,(User o1,User o2)->{return o1.getName().compareTo(o2.getName());});

在这里插入图片描述

/**
 *  四大内置函数型接口
 *  Consumer<T> 消费性接口 (有来无回)
 * 			void accept(T t)
 *  BiConsumer<T,T>
 *          void accpet(T t1,T t2)
 * 
 *  Predicate<T>  段言型
 *  		boolean test(T t)
 *  BiPredicate<T,T>
 *          boolean test(T t1,T t2)
 * 
 *	Function<T,R> 函数型接口
 *			R apply(T t)
 *	BiFunction<T,T,R>
 *	        R apply(T t1,T t2)
 *	
 *  Supplier<T> 供给型接口
 *  		T get()
 */
public class FunctionDemo01 {
    public static void main(String[] args) {
        consumer(1000,(money)-> System.out.println("消费了"+money+"元"));

        //如果字符个数>3,就放入新容器中返回
        List<String> list = new ArrayList();
        list.add("123");
        list.add("12");
        list.add("1");
        list.add("1234");
        list.add("12345");
        List<String> list2 = predicate(list,(s)->s.length()>3);
        System.out.println(list2);

        //去除前后的空格
        System.out.println(function("   ab ",(str)->{return str.trim();}));

        //产生10个, 1~10之间的随机数返回
        List<Integer> list3 = supplier(10, () -> (int) (Math.random() * (10) + 1));
        System.out.println(list3);
    }

    //消费型接口
    public static void consumer(int money, Consumer<Integer> com){
        com.accept(money);
    }

    //段言型接口,对一个字符串容器中的数据进行判断过滤,过滤条件:如果字符个数>3,就放入新容器中返回
    public static List<String> predicate(List<String> list, Predicate<String> pred){
        List<String> newList=new ArrayList<>();
        for(String str:list){
            if(pred.test(str)){
                newList.add(str);
            }
        }
        return newList;
    }

    //函数型接口
    //可以对某个字符串,进行某种操作,结果返回
    public static String function(String str, Function<String,String> function){
        return function.apply(str);
    }

    //供给型接口使用
    //指定规则,指定个数,产生满足条件个数的数字返回
    public static List<Integer> supplier(int num, Supplier<Integer> sup){
        List<Integer> newList=new ArrayList<>();
        for (int i = 0; i <num ; i++) {
            newList.add(sup.get());
        }
        return newList;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值