java第六章工具包6.2.Collection Streams 2020.4.7
文章目錄
- P6-14.Function Programming函數式編程)
- P6-15.Lambda Lambda表達式)
- P6-16.Stream集合Stream)
- P6-17.Filter&Map&Sorted)
- 類型::方法
- (P6-18.Collect)
- P6-19.RemoveIf)
- P6-20Functional Interfaces函數式接口(課后))
- getValue)
P6-14.Function Programming函數式編程)
核心是函數
典型閉包
在不同場景下,選擇合適的
通過對象內部
參數是函數一部分,僅與函數本身有關
P6-15.Lambda Lambda表達式)
這里指函數,(接口的抽象方法,約束)
又返回值置,但沒有類型約束
聲明方法
P6-16.Stream集合Stream)
用法:
先創建個類
SQL沒循環,沒篩選
將精力,放在我要干什么
1.8有了,集合流(與io流不同)
不是用來存儲元素的,而是一個管道
一個流水線,到另一個流水線
會創建新集合(創建新引用)
比如:collect() 映射成一個新集合(list set。。。)
工具類是靜態的 不用創建新對象,直接輸入進去就好
概念完全不同:(a,就是參數)
一條語句還可以簡化
P6-17.Filter&Map&Sorted)
都會返回一個新的流,允許后續進行新的操作
過濾:
A better way
例子:需要認真看流程
直接基于集合操作
Java 8 Streams map() 示例
java8 .stream().map().collect()用法
Java stream.map 和 stream.forEach 區別
簡寫也樂意,就是-----------Apple是類型::方法
不強烈建議,但要知道意思
**
類型::方法
**
看這個代碼咋用就好
comparing方法,集城的,比較方法,(c++的cmp函數?) 可惜不知道穩不穩定~~(一會查查)~~
(P6-18.Collect)
這里應該是寫錯了,應該是getColor
另:下圖代碼,與下下圖第一行等效,比較記憶
第二段代碼,ID不同,沒重
forEach沒返回值
Collectors下有很多方法 toSet map list。。。。
對:map的遍歷
函數是閉包,不應該有外界變量
P6-19.RemoveIf)
從集合中刪除元素是很麻煩的事:新方法:基于迭代器 :removeIf:不是集合流的方法,是集合的方法,但要用Lambada
(forEach也是集合的方法)(確實不錯,但真煩)
底層邏輯;
P6-20Functional Interfaces函數式接口(課后))
之前一直用現成的,試試能不能自己實現
能且只能1個:本質是聲明了一個函數:所以只能有一個抽象方法(不能說一個函數,又好幾個)
直接就聲明了
也就是信心念念的如何使用函數
下圖為上圖的實現,f就是這個函數變量了,可以通過 f 進行傳遞
下圖中F的
與User String 的name變量 完全不同,
name是方法的返回值(不是這個方法),f就是這個函數
對forEach傳入函數
getValue)
就是聲明過的那個,f里是對它的實現 f是個接口類型的引用
getValue函數就是那個lambada表達式
總結
以上是生活随笔為你收集整理的java第六章工具包6.2.Collection Streams 2020.4.7的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编实战准备:DOS调用命令
- 下一篇: 阅读SessionFactory源码