如何擷取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);
}
}