总结:java8.的lambda表达式

概念

百度百科解释:
Lambda表示(Lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。

特点

两个特点:
(1)Lambda是匿名函数(假设使用场景,想写一个函数实现,但是又无法准确的定义这个函数名的时候,说白了就是不想费神,费事)很大程度的减少代码冗余,简化开发。
(2)Lambda是可传递的(即可以将整个Lambda表达式作为参数传给其他函数)

语法

核心操作符号->,该操作符一般被称为“Lambda操作符或者箭头操作符”,它将表达式分为左右两部分。
左边部分表示:规定表达式所需的所有参数。
右边部分表示:可以理解为函数主要函数体,即这个表达式要主要实现的功能。也叫Lambda体。
格式范例

(1)无参无返回值:

Runnable r = () -> System.out.println("Hello Lambda!");

(2)有一个参数的:

Consumer<String> con = (x) -> System.out.println(x);

(3)只有一个参数时,包括参数的括号可以省略:

Consumer<String> con = x -> System.out.println(x);

(4)需要两个参数,并且有返回值

Comparator<Integer> com = (x, y) -> {
        System.out.println("xxxxx");
        return Integer.compare(x, y);
    };

(5)当Lambda体只有一条语句时,return关键字和大括号可以省略

Comparator<Integer> com = (x, y) -> Integer.compare(x, y);

范例

实现一个线程的区别?

public class Test {
 
    public static void main(String[] args) {
 
        // Java8之前:
        new Thread(new Runnable() {
            public void run() {
                System.out.println("hello world");
            }
        }).start();
 
        // Java8方式:
        new Thread(() -> System.out.println("hello world")).start();
    }
}

集合元素的遍历:

public class Test2 {
 
    public static void main(String[] args) {
        // Java8之前:
        List<String> list1 = Arrays.asList("a", "b", "c", "d");
        for (String str : list1) {
            System.out.println(str);
        }
 
        // Java 8之后:
        List list2 = Arrays.asList("a", "b", "c", "d");
        list2.forEach(n -> System.out.println(n));
 
        // 使用Java 8的方法引用更方便,方法引用由::双冒号操作符标示,
        list2.forEach(System.out::println);
 
    }
}

[……学习中……]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值