java函式式程式設計之Stream

2021-07-25 15:35:00 字數 2206 閱讀 8912

描述:對集合進行過濾,返回乙個符合特定條件的stream。

原始碼:

stream filter(predicate<? super t> predicate);
測試**:

private listuserlist = new arraylist<>();

@before

public void init()

@test

public void testfilter()

測試結果:

[user, user]
描述:根據當前集合經過處理,得到乙個包含目標型別stream。

原始碼:測試**:

@test

public void testmap()

用上面的使用者列表,經過處理得到乙個含使用者名稱的stream。

測試結果如下:

[zm, zm1, zm2]

描述:根據乙個集合,經過處理得到乙個整數的intstream。

原始碼:

intstream maptoint(tointfunction

<? super

測試**:

@test

public

void

testmaptoint()

測試結果:

[28, 38, 48]
描述:參考maptoint()

描述:參考maptoint()

描述:取出集合裡面包含的集合屬性的集合的stream。如:list< user>是源集合,每個user包含乙個list< car>集合, 此方法能取出每個user裡面的carlist組合到一起,返回乙個stream。更直觀的參見測試**。

原始碼:測試**:

@before

public void init()

@test

public void testflatmap()

測試結果:

[car, car, car, car, car, car]

測試**:

@test

public void testflatmaptoint());

intstream intstream = userlist.stream().flatmaptoint(user -> intstream.of(user.getage()));

intstream.foreach(age ->);

}

測試結果:

一月 07, 2017

10:22:58 下午 com

.zm.demo

.streamtest lambda$testflatmaptoint$6

資訊: 28

一月 07, 2017

10:22:58 下午 com

.zm.demo

.streamtest lambda$testflatmaptoint$6

資訊: 38

一月 07, 2017

10:22:58 下午 com

.zm.demo

.streamtest lambda$testflatmaptoint$6

資訊: 48

描述:參考flatmaptoint()

描述:參考flatmaptoint()

描述:去除重複的元素

原始碼:

stream distinct();
測試**:

@test

public void testdistinct()

測試結果:

[1, 5, 3, 2, 4]
描述:按自然順序排序

原始碼:

stream sorted();
測試**:

@test

public void testsorted()

測試結果:

[1, 1, 2, 3, 3, 4, 5, 5]
待續。。。

函式式程式設計之純函式

純函式 我們應該還記得初中的一些數學知識,函式f的概念就是,對於輸入x產生乙個輸出y f x 這就是普通的純函式。它的定義是 相同的輸入,結果總會得到相同的輸出,而且沒有任何可觀察的 也不依賴外部環境的狀態。最常見的乙個例子就是在我們運算元組的時候slice就是純函式,splice就是不純的,看下面...

函式式程式設計之lambda

函式式程式設計 在js python等指令碼語言中經常可以看到已函式作為變數來傳遞的用法,這種方法使得程式多是在建立函式 或建立函式 執行 的路上。更甚至一些簡單的方法完全不需要呼叫 引入 庫就可以用簡單的幾行 來解決,可以使得程式專注於做某件事而不被外部因素影響,這個特點使得在多執行緒時不易出現問...

F 程式設計 函式式程式設計之Records

當你想把資料組成乙個結構化的格式,而不需要太複雜的語法時,你可以使用f 中的record型別。record型別與c語言的struct型別基本一樣,儲存一組型別的值,通過欄位的值來獲取。定義乙個record型別很簡單,只需要在大括號內定義系列的名稱 型別就可以。要例項化乙個record,只需要提供對應...