zoukankan      html  css  js  c++  java
  • Java8新特性 Stream流式思想(二)

    如何获取Stream流
    刚开始写博客,有一些不到位的地方,还请各位论坛大佬见谅,谢谢!

    package cn.com.zq.demo01.Stream.test01.Stream;

    import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;

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

    /*
    * java.util.stream.Stream<T> 是Java8新加入的流式接口
    * 获取一个流非常简单 ,主要有以下几种方式 :
    * 1、所有的Collection集合都可以通过调用 默认方式 stream() 获取Stream流。
    * 2、获取数组对应的流,使用 Stream接口的静态方法 of() 进行获取即可。
    * 3、那Map集合呢? 他不是Collection接口的子接口。这里我们可以采用以下两种方式 :
    * 分别通过Map集合的 keySet()方法 、values()方法获取到Map集合对象的Stream流。
    * 或者就是通过Map集合的entrySet方法获取到Map集合的键值对,直接将键值对转换为Stream流即可。
    * */
    public class Test03GetStream {

    public static void main(String[] args) {
    // 把集合转化为 Stream 流
    List<String> list = new ArrayList<>();
    Stream<String> streamA = list.stream();//这就将 List集合转化为了 Stream流

    Set<String> hashSet = new HashSet<>();
    Stream<String> streamB = hashSet.stream();//把Set集合 转换为 Stream 流

    // 如何将Map集合转换为 Stream流呢?
    Map<String,String> map = new HashMap<>();

    // Map集合转换为Stream流的方法一
    // 先获取到键值把Map集合中的键存储到set集合中 将键转换为 Stream流

    Set<String> key = map.keySet();
    Stream<String> streamKey = key.stream();
    Collection<String> values = map.values();
    Stream<String> streamValue = values.stream();

    // Map集合转换为Stream流的方式二
    // 获取键值对 通过 将键值对 转换为流的方式
    Set<Map.Entry<String, String>> entries = map.entrySet();
    Stream<Map.Entry<String, String>> streamEntrySet = entries.stream();

    // 如何将数组转换为Stream 流呢?
    Stream<? extends Serializable> streamOf = Stream.of("张三", "李四", 1, "王五", "赵六", "田七", 2);

    // 由于 Stream 接口的静态方法 Of 的参数是一个 可变参数 所以 参数可以传递一个数组
    int []arr ={1,2,3,4,5,6,7,8,9,4,5};
    Stream<int[]> streamArr = Stream.of(arr);
    }
    }

    --------------------- 

  • 相关阅读:
    java—— 字节流
    20-转>ES6转ES5的实现原理
    18-检验闭包是否真正理解?
    17-数组中去除基本数据类型和NaN的重复项(并保证原有数组顺序)
    16-实现一个Promise.all 和 Promise.race
    14-数组求和之递归方式
    13-斐波那契数列
    12-找到数组中的两项的和等于传入的指定数
    11-合并两个有序数组
    10-判断两个对象是否相等(有点类型every的实现)
  • 原文地址:https://www.cnblogs.com/ly570/p/10935325.html
Copyright © 2011-2022 走看看