Java8值函数式接口

2021-04-21  本文已影响0人  felixfeijs

Java8值函数式接口

@FunctionalInterface
public interface MyInterface {

    void info();

    // void info(); 只能有一个抽象方法,才被称之为函数式接口
}

+Java内置四大核心函数式接口

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

消费型接口Consumer<T> void accetp(T t)
    @Test
    public void test1() {
        happyTime(500, money -> {
            System.out.println("消费了" + money);
        });
    }

    public void happyTime(double money, Consumer<Double> con) {
        con.accept(money);
    }
供给型接口Supplier<T> T get()
函数型接口Function<T,R> R apply(T t)
断定型接口Predicate<T> boolean test(T t)
    @Test
    public void test2() {
        List<String> list = Arrays.asList("北京", "南京", "天津", "东京", "普京");
        List<String> filterString = filterString(list, s -> s.contains("京"));
        System.out.println("过滤后的字符串集合=" + filterString);
    }

    // 根据给定的规则,过滤集合中的字符串,此规则由Predicate的方法决定
    public List<String> filterString(List<String> list, Predicate<String> pre) {
        ArrayList<String> filterList = new ArrayList<>();
        for (String s : list) {
            if (pre.test(s)) {
                filterList.add(s);
            }
        }
        return filterList;
    }
上一篇 下一篇

猜你喜欢

热点阅读