java 8新特性 获取Stream流的两种方式

获取一个流非常简单,有以下几种常用的方式:

所有的 Collection 集合都可以通过 stream 默认方法获取流;

Stream 接口的静态方法 of 可以获取数组对应的流。

方式1 : 根据Collection获取流

首先, java.util.Collection 接口中加入了default方法 stream 用来获取流,所以其所有实现类均可获取流。

publicinterfaceCollection{

    defaultStream<E>stream()

}

importjava.util.*;

importjava.util.stream.Stream;

publicclassDemo04GetStream{

publicstaticvoidmain(String[]args) {

// 集合获取流

// Collection接口中的方法: default Stream<E> stream() 获取流

List<String>list=newArrayList<>();

// ...

Stream<String>stream1=list.stream();

Set<String>set=newHashSet<>();

// ...

Stream<String>stream2=set.stream();

Vector<String>vector=newVector<>();

// ...

Stream<String>stream3=vector.stream();

  }

}

java.util.Map 接口不是 Collection 的子接口,所以获取对应的流需要分key、value或entry等情况:

importjava.util.HashMap;

importjava.util.Map;

importjava.util.stream.Stream;

publicclassDemo05GetStream{

publicstaticvoidmain(String[]args) {

// Map获取流

Map<String,String>map=newHashMap<>();

// ...

Stream<String>keyStream=map.keySet().stream();

Stream<String>valueStream=map.values().stream();

Stream<Map.Entry<String,String>>entryStream=map.entrySet().stream();

  }

}

方式2 : Stream中的静态方法of获取流

由于数组对象不可能添加默认方法,所以 Stream 接口中提供了静态方法 of ,使用很简单:

importjava.util.stream.Stream;

publicclassDemo06GetStream{

publicstaticvoidmain(String[]args) {


// Stream中的静态方法: static Stream of(T... values)

Stream<String>stream6=Stream.of("aa","bb","cc");


String[]arr={"aa","bb","cc"};

Stream<String>stream7=Stream.of(arr);

Integer[]arr2={11,22,33};


Stream<Integer>stream8=Stream.of(arr2);


// 注意:基本数据类型的数组不行

int[]arr3={11,22,33};

Stream<int[]>stream9=Stream.of(arr3);

  }

}

备注: of 方法的参数其实是一个可变参数,所以支持数组。

小结

通过Collection接口中的默认方法Stream stream()

通过Stream接口中的静态of方法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容