java 8新特性 獲取Stream流的兩種方式

獲取一個流非常簡單,有以下幾種常用的方式:

所有的 Collection 集合都可以通過 stream 默認方法獲取流;

Stream 接口的靜態(tài)方法 of 可以獲取數(shù)組對應的流。

方式1 : 根據(jù)Collection獲取流

首先, java.util.Collection 接口中加入了default方法 stream 用來獲取流,所以其所有實現(xiàn)類均可獲取流。

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中的靜態(tài)方法of獲取流

由于數(shù)組對象不可能添加默認方法,所以 Stream 接口中提供了靜態(tài)方法 of ,使用很簡單:

importjava.util.stream.Stream;

publicclassDemo06GetStream{

publicstaticvoidmain(String[]args) {


// Stream中的靜態(tài)方法: 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);


// 注意:基本數(shù)據(jù)類型的數(shù)組不行

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

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

? }

}

備注: of 方法的參數(shù)其實是一個可變參數(shù),所以支持數(shù)組。

小結

通過Collection接口中的默認方法Stream stream()

通過Stream接口中的靜態(tài)of方法

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容