山东大学项目实训树莓派提升计划二期(十七)集合流的聚合操作

目录

实验十 集合流的聚合操作

实验目的

实验内容

实验代码框架

实验设计的思路与考量

Lambda表达式

流管道

常用流方法


实验十 集合流的聚合操作

实验目的

对集合流使用聚合操作来简化代码和提高性能。

在流上创建一个流管道,使用惰性中间方法和终止方法。

创建并行流以实现快速执行。

使用reduce方法将流中的元素减少为单一结果。

使用collect方法将流中元素放入可变集合。

将流中元素分组并对组中的元素使用聚合方法。

实验内容

编写CountLettersUsingStream类的main方法,使用Stream来简化实现:随机生成1000个小写字母并计算每个字母出现次数。

实验代码框架

import java.util.Random;

import java.util.TreeMap;

import java.util.stream.Collectors;

import java.util.stream.Stream;

public class CountLettersUsingStream {

    private static int count=0;



    public static void main(String[] args) {

    }

}

实验设计的思路与考量

Lambda表达式

Java 8(JDK 1.8)中,加入了lamda表达式,标准格式为:

(参数类型 参数名称) ‐> { 代码语句 }

小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。

-> 是新引入的语法格式,代表指向动作。

大括号内的语法与传统方法体要求基本一致。

大多数流的方法的参数是函数接口的实例。所以,可以用lamda表达式或方法引用来创建参数。

流管道

流管道由一个源(例如,一个线性表,一个规则集或一个数组)、一个创建流的方法、零个或多个中间方法、一个最终终止方法组成。比如:set.stream().limit(50).distinct().count(),set是数据源,调用stream()方法为源中的数据创建了一个六,调用limit(50)返回由流中前50个元素组成的流,调用distinct()获得由这个流中不同的元素组成的流,而调用count()返回了最终流的个数。

流是惰性的,这意味着仅仅当终止操作开始时才会进行计算。

常用流方法

  1. Stream.of、limit、forEach
  2. sorted
  3. filter
  4. max和min
  5. anyMatch、allMatch、noneMatch
  6. map、distinct、count
  7. findFirst、findAny、toArray
  8. IntStream、LongStream、DoubleStream
  9. 并行流
  10. 使用reduce方法进行流的归约
  11. 使用collect方法进行流的归约
  12. 使用groupingBy收集器进行元素分组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值