巧用stream操作集合

2021-09-27 06:57:41 字數 3395 閱讀 4729

將要處理的元素看做一種流,流在管道中傳輸,並且可以在管道的節點上處理,包括過濾篩選、去重、排序、聚合等。元素流在管道中經過中間操作的處理,最後由最終操作得到前面處理的結果。

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 ...