Lamda Expression

1.为何使用lamda表达式?java

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

在java8以前,回调的代码一般由匿名类提供编程

2.lamda表达式语法
lamda表达式包含三部分:数据结构

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

二、 一个箭头符号函数

三、 方法体,能够是表达式和代码块大数据

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

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

方法没有参数,->前面的()中不须要声明形参线程

->后边代码只有一行,()能够省略

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

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

@FunctionalInterface

public interface A {

public abstract void call();

}
写一个@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的 }}--------------------- 做者:high_tea 来源:CSDN 原文:https://blog.csdn.net/qq_21319187/article/details/82429788 版权声明:本文为博主原创文章,转载请附上博文连接!

相关文章
相关标签/搜索