Java 8

lambda 表达式

lambada需要接口中只有一个有抽象方法
@FunctionalInterface 可以检查类是否为函数式 也就是是否只有一个抽象方法

代码格式

格式 () -> {}
圆括弧中添加参数 {} 中添加函数体内容
若只有一个参数 可以省略()
若只有一条语句 可以省略 {}
若只有一条语句 return 也可以不用写
如下代码

@FunctionalInterface
public interface Calc {
    public Integer add(int a, int b);
}
public class Main {
    public static void main(String[] args) {
        Calc calc = (a, b) -> a + b;

        Integer add = calc.add(10, 20);
        System.out.println(add);
    }
}

四大函数接口

image
对传入的accept参数进行操作 无返回值
调用lmbda表达式 重写accept方法 进行操作

public class Main {
    public static void main(String[] args) {
        ConsumerLambda consumerLambda = new ConsumerLambda();
        consumerLambda.happy(10000D, (money) -> {
            System.out.println("消费:" + money);
        });
    }
}


class ConsumerLambda {
    public void happy(Double money, Consumer<Double> consumer) {
        consumer.accept(money);
    }
}

steam

可以对集合进行一系列过滤操作

posted @ 2021-12-14 18:14  RainbowMagic  阅读(25)  评论(0)    收藏  举报