第一篇博客

斐波那契数列

http://www.nowcoder.com/questionTerminal/c6c7742f5ba7442aada113136ddea0c3

Lambda表达式

格式

 Comparator<Integer> com = (o1,o2) -> Integer.compare(o1,o2);

(o1,o2):lambda形参列表 (其实就是接口中的抽象方法的形参列表)

->:箭头符号

Integer.compare(o1,o2) :lambda体 (其实就是重写的抽象方法的方法体)

举例一

未使用:

Runnable r1 = new Runnable() {
    @Override
    public void run() {
        System.out.println("我爱北京***");
    }
};

    r1.run();

使用后:

    Runnable r2 = () -> System.out.println("我爱北京故宫");

    r2.run();
}

结果相同

举例二

    Comparator<Integer> com1 = new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return Integer.compare(o1,o2);
        }
    };

    int compare1 = com1.compare(12,21);    //-1
 //Lambda表达式的写法
    Comparator<Integer> com2 = (o1,o2) -> Integer.compare(o1,o2);

    int compare2 = com2.compare(32,21); //1

方法引用

 //方法引用
    Comparator<Integer> com3 = Integer :: compare;

    int compare3 = com3.compare(32,21); //1

函数式接口:什么时候用lambda表达式

​ 实例化函数式接口

方法引用

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务