Java 8-lambda表达式和Stream API

原创
2017/08/14 20:34
阅读数 87

1. Stream 的官方描述
        A sequence of elements supporting sequential and parallel aggregate operations .

       (一个序列的元素支持顺序和并行聚合操作。)

理解:

Stream是元素的集合,这点让Stream看起来用些类似Iterator;

可以支持顺序和并行的对原Stream进行聚合(聚合也可以理解为聚汇、合并)的操作。

Note:

可以把Stream当成一个高级版本的Iterator。原始版本的Iterator,
用户只能一个一个的遍历元素并对其执行某些操作;
高级版本的Stream,用户只要给出需要对其包含的元素执行什么操作,
如“过滤掉长度大于10的字符串”、“获取每个字符串的首字母”等,
具体这些操作如何应用到每个元素上,就给Stream就OK了!

 

// 不使用lambda表达式为每个订单加上12%的税
List costBeforeTax = Arrays.asList(100, 200, 300, 400, 500);
for (Integer cost : costBeforeTax) {
    double price = cost + .12*cost;
    System.out.println(price);
}
 
// 使用lambda表达式
List costBeforeTax = Arrays.asList(100, 200, 300, 400, 500);
costBeforeTax.stream().map((cost) -> cost + .12*cost).forEach(System.out::println);

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部