Java8Stream截取List
⼀、需求说明
现有接⼝需对已注册⽤户批量注册⾄极光,极光提供接⼝仅⽀持单词500,故使⽤Stream截取数据库查询结果。⼆、代码实现
1        // 查询所有需注册⾄极光的⽤户基础信息
2        List<JiGuangInfo> jiGuangInfos = getJiGuangInfoList();
3        // 总注册数
4        int countAll = jiGuangInfos.size();
5        // 批次注册数
6        int batchNum = 500;
7        // 供需多少批java stream
8        int frequency = (countAll + batchNum -1) / batchNum;
9        List<List<JiGuangInfo>> splitList = Stream.iterate(0, n -> n + 1) // 创建流
10                .limit(frequency)    // 取 frequency 个
11                .parallel()          // 开启并⾏处理
12                .map(    // 处理单项
13                          a -> jiGuangInfos.stream()
14                        .skip(a * batchNum) // 跳过元素
15                        .limit(batchNum)    // 取 batchNum 个
16                        .parallel()        // 开启并⾏处理
17                        .List())
18                )
19                .List());

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。