Java之Stream資料流介面
阿新 • • 發佈:2022-03-19
簡介:
從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);
}
}
輸出結果: