lamda表达式

 

  1. 为什么使用lamda表达式

  2. lamda表达式语法

  3. lamda表达式规则

  4. lamda表达式应用

为什么使用lamda表达式

  1. Java8的λ表达式的基本用途:完成了回调的原意——代码的参数化

  2. 在java8之前,回调的代码通常由匿名类提供

lamda表达式语法

lamda表达式包含三部分:

1、 一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数

2、 一个箭头符号

3、 方法体,可以是表达式和代码块

(parameters)->expression 或者 (parameters)->{statements;}

lamda表达式规则

栗子:Runnable runnable = () -> System.out.println("这个是用拉姆达实现的线程");

  1. 方法没有参数,->前面的()中不需要声明形参

  2. ->后边代码只有一行,()可以省略

lamda表达式应用应用1:函数式接口应用

1. 定义一个@FunctionalInterface注解标志的接口(函数式接口)

@FunctionalInterface

public interface A {

    public abstract void call();

}
  1. 写一个@Test

public class Demo2 {

@Test

public void test(){

    lamda();

}

public void lamda(){

    A a = ()-> System.out.println("lamda 实战1");

    a.call();

    }
}

结果输出:

 

应用2:使用lambda改进的集合框架Stream API

流(Stream)仅仅代表着数据流,并没有数据结构,所以他遍历完一次之后便再也无法遍历(这点在编程时候需要注意,不像Collection,遍历多少次里面都还有数据),它的来源可以是Collection、array、io等等。

流作用是提供了一种操作大数据接口,让数据操作更容易和更快。它具有过滤、映射以及减少遍历数等方法,这些方法分两种:中间方法和终端方法,“流”抽象天生就该是持续的,中间方法永远返回的是Stream,因此如果我们要获取最终结果的话,必须使用终点操作才能收集流产生的最终结果。区分这两个方法是看他的返回值,如果是Stream则是中间方法,否则是终点方法。

import java.util.stream.Stream;

public class StreamDemo {

public static void main(String[] args) {

    List<User> users = new ArrayList<User>();

    users.add(new User(20, "张三"));

    users.add(new User(22, "李四"));

    users.add(new User(10, "王五"));

    Stream<User> stream = users.stream();

    stream.filter(p -> p.getAge() > 20); //过滤年龄大于20的

    }
}

参考博客:

https://www.cnblogs.com/xrq730/p/6424471.html 

https://blog.csdn.net/yqj2065/article/details/31441221

https://blog.csdn.net/qq_35805528/article/details/53264301

本文栗子自己参考博客1,并作了优化

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值