關於stream 和lambda使用

2021-10-02 01:23:10 字數 1979 閱讀 8451

這幾天看專案用到了這些,總結學習一下

先生成測試資料

liststudents = new arraylist();

students.add(student.builder().name("wyp").id(1l).age(21).***("男").build());

students.add(student.builder().name("wj").id(2l).age(22).***("女").build());

students.add(student.builder().name("zs").id(3l).age(22).***("男").build());

students.add(student.builder().name("zwx").id(4l).age(22).***("女").build());

實體類是student,用的是lombok-@builder,方便生成資料

1.先來看基礎的,獲取list集合中的某一種屬性,這裡以名字為例

listnamesone = students.stream().map(student::getname).collect(collectors.tolist());
這是一種寫法,也可以寫成另一種

listnamesone = students.stream().map(s->s.getname()).collect(collectors.tolist());
執行結果是一樣的

2.限制輸出個數 limit()

listnamesone = students.stream().limit(2).map(student::getname).collect(collectors.tolist());
執行結果:

3.以字串來輸出 joining()

string namesstring = students.stream().map(student::getname).collect(collectors.joining(","));
方法內",「為分割符。

執行結果:

如果不申明」,"

執行結果:

4.過濾 filter(),這裡過濾女生,只要性別為男的名字

listnamestwo = students.stream().filter(limit->limit.get***().equals("男")).map(student::getname).collect(collectors.tolist());
執行結果:

5.也可以set接收

setages = students.stream().filter(l->l.get***().equals("男")).map(student::getage).collect(collectors.toset());
執行結果:

好了,後續如果還有什麼新奇再繼續補充!!

Lambda和Stream流 Lambda表示式

內部類根據在類中的位置不同分為三種 1.成員內部類 在類的成員位置 2.區域性內部類 在方法中 3.匿名內部類 在方法中,是一種簡化的寫法public class outer public class demo1 區域性內部類是定義在方法中的類,只能在方法中使用,侷限性很強。所以一般不會使用。pub...

List中Stream和Lambda表示式

建立 通過陣列建立 arrays.stream 通過集合建立 普通流 集合物件.stream 並行流 集合物件.parallelstream 建立空的流stream.empty 建立無限流 建立無限流,通過limit提取指定大小 stream.generate 建立規律的無線流stream.iter...

JAVA8 Stream 和Lambda表示式使用

lambda也叫函式式程式設計 包括此方法都是 function super r,extends v after 1首生 lambd表示式簡化了方法的定義,匿名的方法直接實現邏輯 使用方式 x,y x y 返回x y之和,有引數的匿名 無參方法,不需要寫方法單獨去實現。表示式賦值的話,必須是fina...