Fork me on GitHub

Java 8 Stream 的 五种创建方式

Java 8 Stream 的 五种创建方式


 

 

1、Stream 的五种创建方式

1)通过数组创建

2)通过列表创建

3)通过 Stream.generate 方法创建

4)通过 Stream.iterate 方法创建

5)通过其他 API 创建

 

2、示例代码

代码如下:

复制代码
package mirale.luna.lambda.stream;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

/**
 * Created by Miracle Luna on 2020/12/23
 */
public class CreateStream {
    public static void main(String[] args) {

        System.out.println("==================方式1=================");
        // 方式1:数组创建
        Integer[] intArr = {1,2,3,4,5,6};
        Stream stream1 = Stream.of(intArr);
        stream1.forEach(System.out::println);

        System.out.println("\n==================方式2=================");

        // 方式2:列表创建
        List<String> strings = Arrays.asList("Java", "Go", "Python", "Vue");
        Stream stream2 = strings.stream();
        stream2.forEach(System.out::println);

        System.out.println("\n==================方式3=================");

        // 方式3:Stream.generate 创建
        Stream stream3 = Stream.generate(()-> 1);
        stream3.limit(3).forEach(System.out::println);

        System.out.println("\n==================方式4=================");

        // 方式4:Stream.iterate 创建
        Stream stream4 = Stream.iterate(1, i -> i+1);
        stream4.limit(4).forEach(System.out::println);

        System.out.println("\n==================方式5=================");

        // 方式5:其他API 创建
        stream1 = Stream.of(intArr);
        stream2 = strings.stream();
        Stream stream5 = Stream.concat(stream1, stream2);
        stream5.forEach(System.out::println);
    }
}
复制代码

 

运行结果如下:

复制代码
==================方式1=================
1
2
3
4
5
6

==================方式2=================
Java
Go
Python
Vue

==================方式3=================
1
1
1

==================方式4=================
1
2
3
4

==================方式5=================
1
2
3
4
5
6
Java
Go
Python
Vue
复制代码

 

posted @   龙凌云端  阅读(377)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-12-29 java.net.SocketException:Too many open files 解决方案
点击右上角即可分享
微信分享提示