文档章节

Stream 示例

my_juke
 my_juke
发布于 06/01 15:57
字数 279
阅读 4
收藏 0

创建一个无限大小的Stream

Stream s = Stream.generate(()->1);
//测试循环10次
 s.peek(System.out::println).limit(10).collect(Collectors.toList());

创建一个1到100的数字,然后求和

        IntStream s = IntStream.iterate(1,t->t+1).limit(100);
        //s = IntStream.range(1,100)
        System.out.println(s.sum());

分组

类如下:

static class Stu {

        public static Stu get(String name, String sex, String clas) {
            Stu s = new Stu();
            s.name = name;
            s.sex = sex;
            s.clas = clas;
            return s;
        }

        public String name;

        public String sex;

        public String clas;

        public String getName() {
            return name;
        }

        public String getClas() {
            return clas;

        }

        public String getSex() {
            return sex;

        }
    }

测试类 按clas分组

        Stu s1 = Stu.get("a1","F","A");
        Stu s2 = Stu.get("a2","M","A");
        Stu s3 = Stu.get("a3","F","B");
        Stu s4 = Stu.get("a4","M","B");

        System.out.println(Stream.of(s1,s2,s3,s4).collect(Collectors.groupingBy(Stu::getClas)));

按clas,sex分组

Stream.of(s1,s2,s3,s4).collect(Collectors.groupingBy(Stu::getClas,Collectors.groupingBy(Stu::getSex)))

分区

按是与否分2个区,

Stream.of(s1,s2,s3,s4).collect(Collectors.partitioningBy(t->StringUtils.equals(t.sex,"F")))

运行后结果:

{false=[spring.B$Stu@246b179d, spring.B$Stu@7a07c5b4], true=[spring.B$Stu@26a1ab54, spring.B$Stu@3d646c37]}

将Stu对象的name组成一个字符串,用:分隔

Stream.of(s1,s2,s3,s4).map(Stu::getName).collect(Collectors.joining(":"))

© 著作权归作者所有

my_juke
粉丝 4
博文 34
码字总数 22261
作品 0
深圳
私信 提问
JDK8实践--Java 8系列之Stream的基本语法详解

Stream系列: Java 8系列之Stream的基本语法详解 Java 8系列之Stream的强大工具Collector Java 8系列之重构和定制收集器 Java 8系列之Stream中万能的reduce 概述 继Java 8系列之Lambda表达式...

spinachgit
2018/01/09
49
0
Java8 - 使用Stream API

Java8 - 使用Stream API Stream 是什么? Stream represents a sequence of objects from a source, which supports aggregate operations(多种操作). Following are the characteristics......

秋风醉了
2018/09/12
59
0
Nio 中的方法 - 文件上传

原文 MINA nio 基本用法 createDirectory - 创建目录 示例

lemos
2017/04/23
65
0
java8之Stream API(从迭代器到Stream操作)

当你处理集合时,通常会迭代所有元素并对其中的每一个进行处理。例如,假设我们希望统计一个文件中的所有长单词: package java8test; import java.io.IOException;import java.nio.charset....

柳哥
2015/05/31
739
0
.Net那点事儿系列:System.IO之Stream

Stream在msdn的定义:提供字节序列的一般性视图(provides a generic view of a sequence of bytes)。这个解释太抽象了,不容易理解;从stream的字面意思“河,水流”更容易理解些,stream是...

长平狐
2012/06/08
52
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么要在网站中应用CDN加速?

1. 网页加载速度更快 在网站中使用CDN技术最直接的一个好处就是它可以加快网页的加载速度。首先,CDN加速的内容分发是基于服务器缓存的,由于CDN中缓存了不少数据,它能够给用户提供更快的页...

云漫网络Ruan
20分钟前
2
0
亚玛芬体育(Amer Sports)和信必优正式启动合作开发Movesense创新

亚玛芬体育和信必优正式启动合作开发Movesense创新,作为亚玛芬体育的完美技术搭档,信必优利用Movesense传感器技术为第三方开发移动应用和服务。 Movesense基于传感器技术和开放的API,测量...

symbiochina88
31分钟前
2
0
创龙TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA核心板规格书

SOM-TL437xF是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA芯片设计的核心板,采用沉金无铅工艺的10层板设计,适用于高速数据采集和处理系统、汽车导航、工业自动化等领...

Tronlong创龙
32分钟前
2
0
好程序员Java学习路线分享MyBatis之线程优化

  好程序员Java学习路线分享MyBatis之线程优化,我们的项目存在大量用户同时访问的情况,那么就会出现大量线程并发访问数据库,这样会带来线程同步问题,本章我们将讨论MyBatis的线程同步问...

好程序员官方
38分钟前
6
0
IDEA 自定义方法注解模板

IDEA 自定义方法注解模板 1、使用效果 /*** 计算交易费用* @Author wangjiafang* @Date 2019/9/11* @param feeComputeVo* @return*/@PostMapping("/v1/fee_compute")public ApiResp......

小白的成长
38分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部