將要處理的元素看做一種流,流在管道中傳輸,並且可以在管道的節點上處理,包括過濾篩選、去重、排序、聚合等。元素流在管道中經過中間操作的處理,最後由最終操作得到前面處理的結果。
stream() − 為集合建立序列流
parallelstream() - 為集合建立並行流
中間操作主要有以下方法(此型別方法返回的都是stream):map (maptoint, flatmap 等)、 filter、 distinct、 sorted、 peek、 limit、 skip、 parallel、 sequential、 unordered
終止操作主要有以下方法:foreach、 foreachordered、 toarray、 reduce、 collect、 min、 max、 count、 anymatch、 allmatch、 nonematch、 findfirst、 findany、 iterator
liststudentlist = students.stream().filter(s ->"浙江".equals(s.getaddress())).collect(collectors.tolist());
streamstudents.foreach(system.out::println);
執行結果如下:
listaddresses = students.stream().map(s ->"住址:"+s.getaddress()).collect(collectors.tolist());
addresses.foreach(a ->system.out.println(a));
listlist = arrays.aslist("111","222","333","111","222");
list.stream().distinct().foreach(system.out::println);
執行結果如下:
listlist = arrays.aslist("歡","迎","你");
student s1 = new student(1l, "肖戰", 14, "浙江");
student s2 = new student(2l, "王一博", 15, "湖北");
student s3 = new student(3l, "楊紫", 17, "北京");
student s4 = new student(4l, "李現", 17, "浙江");
student s1 = new student(1l, "肖戰", 15, "浙江");
student s2 = new student(2l, "王一博", 15, "湖北");
student s3 = new student(3l, "楊紫", 17, "北京");
student s4 = new student(4l, "李現", 17, "浙江");
liststudents = new arraylist<>();
students.add(s1);
students.add(s2);
students.add(s3);
students.add(s4);
boolean anymatch = students.stream().anymatch(s ->"湖北".equals(s.getaddress()));
if (anymatch)
boolean allmatch = students.stream().allmatch(s -> s.getage()>=15);
if (allmatch)
boolean nonematch = students.stream().nonematch(s -> "楊洋".equals(s.getname()));
java8Stream操作集合進行排序和過濾
對listresult進行排序,根據伴隨度進行降序 listcollect listresult.stream sorted comparator.comparing followimsi getfollowdegree reversed collect collectors.tolist 根據集合...
Stream類的集合操作 一看就會
對集合list set進行操作是非常常見的事情。我們可以使用optional類來處理空指標問題 optional操作可以參考optional類判空操作 之後對元素進行遍歷,改變,排序等操作可以使用stream類了。stream不是集合,也不儲存資料,是用來操作集合裡元素的,像乙個高階版本的迭代器。s...
Stream流對集合進行排序
author 王文龍 date 2019 10 24 17 44 public class streamtest public streamtest integer id,integer age,string name 省略 getting,setting方法 public static void ...