Stream流基礎操作的學習

2021-10-25 09:56:39 字數 2572 閱讀 3634

/**

* @description:stream流操作 中間操作:例如filter map peek等會對stream的中每乙個物件元素進行操作 最後返回乙個stream流

* 終止操作 結束乙個流的使用 不返回stream流 而是乙個物件

* @author: zhuruilin

* @date: 2020/11/16 9:53

*/public

class

service1116

/** * filter操作 stream< t > filter(predicate< ? super t > predicate)

* 斷言型 算是普通的篩選的

** @param list

*/public

static

void

filter

(list

list)).

collect

(collectors.

tolist()

);}/**

* distinct去重 篩選

* 需要重寫 fruit的equal和hashcode方法,如果不重寫,如果fruit的name和price一樣,

* 使用distinct也去重失敗

** @param list

*/public

static

void

distinct

(list

list));

}/**

* limit 取前幾個

** @param list

*/public

static

void

limit

(list

list)

/** * sorted排序操作

** @param list

*/public

static

void

sorted

(list

list)

else

if(x.

getprice()

< y.

getprice()

)else})

.foreach

(system.out:

:println);}

/** * map對映操作

* 比如 傳入的引數乙個list集合

* 我需要集合裡的fruit物件的id的集合 就可以用到map對映操作

** @param list

*/public

static

void

map(list

list)).

foreach

(system.out:

:println);}

/** * flatmap 扁平化

* 這個我不是很理解 我就暫時的想到的用法就是list中的object某個屬性進行再次細分 比如 字串的切割操作

** @param list

*/public

static

void

flatmap

(list

list)).

flatmap

(x -

>).

foreach

(system.out:

:println);}

/** * peek檢視操作對每乙個流中的元素進行操作

** @param list

*/public

static

void

peek

(list

list)).

collect

(collectors.

tolist()

);}/**

* 匹配操作 是乙個終端操作

* anymatch 只有有乙個符合條件 就返回true 流為空返回false

* nonematch 都不符合條件返回true 否則返回false 流為空返回true

* allmatch 全都符合條件 返回true 只要有個不符合條件就返回false 流為空返回false

** @param list

*/public

static

void

match

(list

list));

result = list1.

stream()

.nonematch

(x -

>);

// 結果依然是true

system.out.

println

(result);}

/** * 收集操作 有很多 我只寫了將結果轉換為常用集合

** @param list

*/public

static

void

collect

(list

list)

}

我自己是跟著下面鏈結的文章學習的,非常感謝這位大佬的奉獻。

Stream流常用操作

stream是個好東西,用完之後感覺以前寫的一堆判斷什麼的真的太臃腫了。隨便記錄點用到的操作。把乙個list中物件某個字段值重複的合併只去乙個值,例子id重複 arraylistcollect records1.stream collect collectors.collectingandthen ...

List的Stream流操作

stream流 stream 中文稱為 流 通過將集合轉換為這麼一種叫做 流 的元素序列,通過宣告性方式,能夠對集合中的每個元素進行一系列並行或序列的流水線操作。函式式程式設計帶來的好處尤為明顯。這種 更多地表達了業務邏輯的意圖,而不是它的實現機制。易讀的 也易於維護 更可靠 更不容易出錯。面對一對...

List的Stream流操作

stream 中文稱為 流 通過將集合轉換為這麼一種叫做 流 的元素序列,通過宣告性方式,能夠對集合中的每個元素進行一系列並行或序列的流水線操作。函式式程式設計帶來的好處尤為明顯。這種 更多地表達了業務邏輯的意圖,而不是它的實現機制。易讀的 也易於維護 更可靠 更不容易出錯。面對一對多結構,查詢主實...