文档章节

java8之Stream API(提取子流和组合流)

柳哥
 柳哥
发布于 2015/09/09 00:17
字数 341
阅读 94
收藏 2

Stream.limit(n)会返回一个包含n个元素的新流(如果原始流的长度小于n,则会返回原始的流)。例如:

package java8test;

import java.util.stream.Stream;

public class T2 {
    public static void main(String[] args) {
        Stream.generate(Math::random).limit(50).forEach(System.out::println);    //注意这句
    }
}

该示例会产生一个包含50个随机数字的流。又例:

package java8test;

import java.util.stream.Stream;

public class T2 {
    public static void main(String[] args) {
        //注意这句
        Stream.of("1","2","3","4","5","6").limit(4).forEach(System.out::println);
    }
}

Stream.skip(n)正好相反,它会丢弃掉前面的n个元素。示例:

package java8test;

import java.util.stream.Stream;

public class T2 {
    public static void main(String[] args) {
        //注意这句
        Stream.of("1","2","3","4","5","6").skip(4).forEach(System.out::println);
    }
}

你可以使用Stream类的静态方法concat将两个流连接到一起:

package java8test;

import java.util.stream.Stream;

public class T2 {
    public static void main(String[] args) {
        //注意这句
        Stream.concat(Stream.of("1","2","3"), Stream.of("a","b","c")).
            forEach(System.out::println);
    }
}

当然,第一个流的长度不应该是无限的——否则第二个流就永远没有机会被添加到第一个流的后面。

peek方法会产生另一个与原始流具有相同元素的流,但是在每次获取一个元素时,都会调用一个函数,这样便于调试

package java8test;

import java.util.stream.Stream;

public class T2 {
    public static void main(String[] args) {
        //注意这句
        Stream.iterate(1, p -> p*2).peek(n -> System.out.println("num:" + n)).
            limit(10).forEach(System.out::println);;
    }
}


© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 207
博文 405
码字总数 347782
作品 0
杭州
技术主管
私信 提问
java8之Lambda知识回顾

前提 18年第一篇文章,祝各位新年快乐哈~ 介绍Lambda之前,可以看下我们定义View点击事件的一般做法 这种回调模式在日常开发中很常见,但是随之也暴露了一些不良的弊端 1、非抽象化,整个代码...

DevSiven
2018/01/05
0
0
跟上Java8 - Stream API快速入门

跟上Java8 - Stream API快速入门 王爵的技术博客2017-07-1821 阅读 streamfilterJava8 在前面我们简单介绍了 表达式,Java8旨在帮助程序员写出更好的代码, 其对核心类库的改进也是关键的一部...

王爵的技术博客
2017/07/18
0
0
Java8实战 — 引入流

流是什么 流是Java API的新成员,它允许你以声明的方式处理数据集合,简单来说,可以把它当作数据集的高级迭代器。此外,流还可以透明地并行处理,你无需写任何多线程代码了。 举个例子来说明...

杰克鹏仔
2016/12/27
8
0
Java8解决了什么?

在学习面向对象时,许多人都会用Java来举例子,但是其实Java并非纯正的面向对象语言,最明显的就是:int,double等基本类型不是对象。 自从java8出来过后,引入了流,函数式编程,就更不是在向...

MageekChiu
2017/08/02
0
0
java8之stream流的基本操作

一、stream流简介 Stream流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。 Stream的优点:声明性,可复合,可并行。这三个特性使得stream操作更简洁,更灵活,更高效。 Stre...

嘴角轻扬30
2018/11/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
58分钟前
3
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
2
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
8
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部