1. 程式人生 > 其它 >Java之Stream資料流介面

Java之Stream資料流介面

簡介:

從JDK1.8大資料時代開始,類集中也有支援資料流式分析處理操作,有一個專門的Stream介面,同時在Collection介面中提供有例項化Stream介面的方法:

public default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }

Stream主要功能是進行資料的分子操作,同時也是針對於集合的資料分析操作:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List; import java.util.stream.Stream; public class MAIN { public static void main(String[] args) { List<String> list = new ArrayList<String>(); Collections.addAll(list, "java","javaScript","Html","Python","C++"); // 新增元素 Stream<String> stream = list.stream(); //
獲得Stream的介面物件 // System.out.println(stream.count()); // 輸出元素的個數 // 要求將每一個元素的字母變為小寫字母,然後判斷包含字母j的元素有幾個 System.out.println(stream.filter((ele)-> ele.toLowerCase().contains("j")).count()); } }

輸出結果:


 

資料採集:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class MAIN { public static void main(String[] args) { List<String> list = new ArrayList<String>(); Collections.addAll(list, "java","javaScript","Html","Python","C++"); // 新增元素 // 將滿足條件的元素彙集轉為List集合 List<String> cll = stream.filter((ele)-> ele.toLowerCase().contains("j")).collect(Collectors.toList()); System.out.println(cll); } }

輸出結果:

 

 

 

在Stream資料流進行資料的處理過程中還允許分頁處理:

- 設定取出的最大的資料量:public Stream<T> limit(long maxSize);
- 跳過指定資料量:public Stream<T> skip(long n);

程式碼實現:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class MAIN {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        Collections.addAll(list, "java","javaScript","Js","Jsp","JJ","Html","Python","C++","R","GO","PHP","Css","C","C#","SQL","MySQL","Orecle");    // 新增元素
        List<String> collect = stream.filter((ele)-> ele.toLowerCase().contains("j")).skip(2).limit(3).collect(Collectors.toList());
        System.out.println(collect);
        
    }
}

輸出結果: