两种获取Stream流的方式

package com.chunzhi.Test02Stream;

import java.util.*;
import java.util.stream.Stream;

/*
   java.util.stream.Stream<T>是JDK 8新加入的最常用的流接口。(这并不是一个函数式接口)
   获取一个流非常简单,有以下几种常用的方式:
        所有的Collection集合都是可以通过stream默认方法获取流
            default Stream<E> stream()
        Stream接口的静态方法of可以获取数组对应的流
            static <T> Stream<T> of (T...values)
            参数是一个可变参数,那么我们就可以传递一个数组
 */
public class Test02GetStream {
    public static void main(String[] args) {
        /* 第一种获取流的方式 */
        // 把集合转换为Stream流
        List<String> list = new ArrayList<String>();
        Stream<String> stream01 = list.stream();

        Set<String> set = new HashSet<String>();
        Stream<String> stream02 = set.stream();

        Map<String, String> map = new HashMap<>();
        // 获取键,储存到一个Set集合中
        Set<String> keySet = map.keySet();
        Stream<String> stream03 = keySet.stream();

        // 获取值,储存到一个Collection集合中
        Collection<String> values = map.values();
        Stream<String> stream04 = values.stream();

        // 获取键值对(键与值的映射关系 entrySet)
        Set<Map.Entry<String, String>> entries = map.entrySet();
        Stream<Map.Entry<String, String>> stream05 = entries.stream();

        /* 第二种获取流的方式 */
        // 把数组转换为Stream流
        Stream<Integer> stream06 = Stream.of(1, 2, 3, 4, 5);

        // 可变参数可以传递数组
        Integer[] arr = {1, 2, 3, 4, 5};
        Stream<Integer> stream07 = Stream.of(arr);
        String[] arr2 = {"a", "bb", "ccc"};
        Stream<String> stream08 = Stream.of(arr2);
    }
}

 

posted @ 2020-12-02 19:46  春志  阅读(446)  评论(0编辑  收藏  举报