获取一个流非常简单,有以下几种常用的方式:
所有的 Collection 集合都可以通过 stream 默认方法获取流;
Stream 接口的静态方法 of 可以获取数组对应的流。
方式1 : 根据Collection获取流
首先, java.util.Collection 接口中加入了default方法 stream 用来获取流,所以其所有实现类均可获取流。
publicinterfaceCollection{
defaultStream
}
importjava.util.*;
importjava.util.stream.Stream;
publicclassDemo04GetStream{
publicstaticvoidmain(String[]args) {
// 集合获取流
// Collection接口中的方法: default Stream
List
// ...
Stream
Set
// ...
Stream
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
// ...
Stream
Stream
Stream
}
}
方式2 : Stream中的静态方法of获取流
由于数组对象不可能添加默认方法,所以 Stream 接口中提供了静态方法 of ,使用很简单:
importjava.util.stream.Stream;
publicclassDemo06GetStream{
publicstaticvoidmain(String[]args) {
// Stream中的静态方法: static Stream of(T... values)
Stream
String[]arr={"aa","bb","cc"};
Stream
Integer[]arr2={11,22,33};
Stream
// 注意:基本数据类型的数组不行
int[]arr3={11,22,33};
Stream
}
}
备注: of 方法的参数其实是一个可变参数,所以支持数组。
小结
通过Collection接口中的默认方法Stream stream()
通过Stream接口中的静态of方法