java8特性-四大函数式接口

Posted 、Dong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8特性-四大函数式接口相关的知识,希望对你有一定的参考价值。


前言


一、Consumer:消费型接口(void accept(T t))

/**
     * 消费型接口Consumer<T>
     */
    @Test
    public void test1 () 
        consumo(500, (x) -> System.out.println(x));
    

    public void consumo (double money, Consumer<Double> c) 
        c.accept(money);
    

二、Supplier:供给型接口(T get())

/**
     * 供给型接口,Supplier<T>
     */
    @Test
    public void test2 () 
        Random ran = new Random();
        List<Integer> list = supplier(10, () -> ran.nextInt(10));

        for (Integer i : list) 
            System.out.println(i);
        
    

    /**
     * 随机产生sum个数量得集合
     * @param sum 集合内元素个数
     * @param sup
     * @return
     */
    public List<Integer> supplier(int sum, Supplier<Integer> sup)
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < sum; i++) 
            list.add(sup.get());
        
        return list;
    

三、Function<T, R>:函数型接口(R apply(T t))

/**
     * 函数型接口:Function<R, T>
     */
    @Test
    public void test3 () 
        String s = strOperar(" asdf ", x -> x.substring(0, 2));
        System.out.println(s);
        String s1 = strOperar(" asdf ", x -> x.trim());
        System.out.println(s1);
    

    /**
     * 字符串操作
     * @param str 需要处理得字符串
     * @param fun Function接口
     * @return 处理之后得字符传
     */
    public String strOperar(String str, Function<String, String> fun) 
        return fun.apply(str);
    

四、Predicate:断言型接口(boolean test(T t))

/**
     * 断言型接口:Predicate<T>
     */
    @Test
    public void test4 () 
        List<Integer> l = new ArrayList<>();
        l.add(102);
        l.add(172);
        l.add(13);
        l.add(82);
        l.add(109);
        List<Integer> list = filterInt(l, x -> (x > 100));
        for (Integer integer : list) 
            System.out.println(integer);
        
    

    /**
     * 过滤集合
     * @param list
     * @param pre
     * @return
     */
    public List<Integer> filterInt(List<Integer> list, Predicate<Integer> pre)
        List<Integer> l = new ArrayList<>();
        for (Integer integer : list) 
            if (pre.test(integer))
                l.add(integer);
        
        return l;
    

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

以上是关于java8特性-四大函数式接口的主要内容,如果未能解决你的问题,请参考以下文章

java8新特性-四大函数式接口(ConsumerSupplierFunctionPredicate)使用样例

Java8新特性——Lambda表达式之四大核心函数式接口 & 方法/构造器/数组引用

Java8新特性——Lambda表达式之四大核心函数式接口 & 方法/构造器/数组引用

java8新特性

Java8新特性

Java8新特性