java8 优雅编程实例@Lambda表达式和流的使用

1、前言:使用java8的lambda表达式和流处理方式可以极大的简化java代码,编写出优雅的java代码。 2、基础2.1、Lambda表达式2.1.1、Lambda表达式理解为,简洁地表示可传递的匿名函数的一种方式。它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。2.1.2、Lambda表达式有三个部分,参数列表、箭头、Lambda主体...
摘要由CSDN通过智能技术生成

1、前言:

使用java8的lambda表达式和流处理方式可以极大的简化java代码,编写出优雅的java代码。

 

2、基础

2.1、Lambda表达式

2.1.1、Lambda表达式理解为,简洁地表示可传递的匿名函数的一种方式。它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。

2.1.2、Lambda表达式有三个部分,参数列表、箭头、Lambda主体。

基本语法是:(parameters) -> expression

或(请注意语句的花括号) (parameters) -> { statements; }

2.2、流

2.2.1、流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器

 

2.2.2、流与集合

粗略地说,集合与流之间的差异就在于什么时候进行计算。

集合是一个内存中的数据结构,它包含数据结构中目前所有的值——集合中的每个元素都得先算出来才能添加到集合中。(你可以往集合里加东西或者删东西,但是不管什么时候,集合中的每个元素都是放在内存里的,元素都得先算出来才能成为集合的一部分。)

相比之下,流则是在概念上固定的数据结构(你不能添加或删除元素),其元素则是按需计算的。

2.2.2.1 流只能遍历一次。集合可以遍历多次。

2.2.2.2 流使用内部迭代。它帮你把迭代做了,还把得到的流值存在了某个地方,你只要给出一个函数说要干什么就可以。

集合需要用户做迭代,称为外部迭代。(foreach/iterator)

2.2.3、流操作

2.2.3.1、中间操作:

中间操作会返回另一个流,合并起来,在终端操作时一次性全部处理。

例如:filter、map、limit、distinct、

2.2.3.2、终端操作:

终端操作会从流的流水线生成结果(非流的值)。例如:count、forEach、collect

2.2.3.3、使用流

流的使用一般包括三件事:

一个数据源(如集合)来执行一个查询;

一个中间操作链,形成一条流的流水线;

一个终端操作,执行流水线,并能生成结果

 

3、代码实例

3.1、找出2011年发生的所有交易,并按交易额排序。

Java8以前写法:

  //定义临时变量

      List<Transaction> transactionTempList = new ArrayList<Transaction>();

         //先过滤出2011

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值