讀Java8函數式編程筆記03_高級集合類和收集器

来源:https://www.cnblogs.com/lying7/archive/2023/01/28/17069633.html
-Advertisement-
Play Games

一、Lua應用場景 游戲開發 獨立應用腳本 Web 應用腳本 擴展和資料庫插件如:MySQL Proxy 和 MySQL WorkBench 安全系統,如入侵檢測系統 教程採用Aide Lua Pro或AndLua+開發安卓應用。在學習開發安卓應用前,先學習lua的基礎課程。 二、配置手機開發環境 ...


1. 方法引用

1.1. 一種引用方法的輕量級語法

1.1.1. 提供了一種簡短的語法

1.1.2. 標準語法為Classname::methodName

1.2. 凡是使用Lambda表達式的地方,就可以使用

1.3. 自動支持多個參數

1.3.1. 前提是選對了正確的函數介面

2. 出現順序

2.1. 流是有序的

2.1.1. 流中的元素都是按順序處理的

2.2. 依賴於數據源和對流的操作

2.3. 在一個有序集合中創建一個流時,流中的元素就按出現順序排列

2.3.1. List

2.4. 如果集合本身就是無序的,由此生成的流也是無序的

2.4.1. HashSet

2.5. 一些操作在有序的流上開銷更大,調用unordered方法消除這種順序就能解決該問題

2.6. 大多數操作都是在有序流上效率更高,比如filter、map和reduce等

2.7. 使用並行流時,forEach方法不能保證元素是按順序處理的

2.7.1. 如果需要保證按順序處理,應該使用forEachOrdered方法

3. 收集器

3.1. 可用來計算流的最終值,是reduce方法的模擬

3.1.1. 生成最終結果的一劑配方

3.1.2. 一種通用的、從流生成複雜值的結構

3.2. 轉換成其他集合

3.2.1. 已有代碼是為集合編寫的,因此需要將流轉換成集合傳入

3.2.2. 在集合上進行一系列鏈式操作後,最終希望生成一個值

3.2.3. 寫單元測試時,需要對某個具體的集合做斷言

3.2.4. toList

3.2.5. toSet

3.2.6. toCollection

3.3. 轉換成值

3.3.1. maxBy

3.3.2. minBy

3.3.3. 按某種特定的順序生成一個值

3.3.4. averagingInt

3.3.4.1. 接受一個Lambda表達式作參數,將流中的元素轉換成一個整數,然後再計算平均數

3.4. 數據分塊

3.4.1. 分解成兩個集合

3.4.2. partitioningBy

3.4.2.1. 接受一個流,並將其分成兩部分

3.5. 數據分組

3.5.1. 使用任意值對數據分組

3.5.2. groupingBy

3.5.2.1. 接受一個分類函數,用來對數據分組

3.5.2.2. 類似SQL中的group by操作

3.6. 字元串

3.6.1. joining

3.7. 其他

3.7.1. counting

3.7.2. mapping

3.7.2.1. 在收集器的容器上執行類似map的操作。但是需要指明使用什麼樣的集合類存儲結果

3.7.3. summarizingLong

3.7.4. reducing

3.8. 下游收集器

3.8.1. 生成部分結果的配方

3.8.2. 主收集器中會用到下游收集器

3.9. 特征

3.9.1. 一組描述收集器的對象,框架可以對其適當優化

3.9.2. characteristics方法定義了特征


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這篇文章主要討論在RPC框架下如何優雅關閉和啟動服務,包括服務提供方如何通知調用方服務關閉重啟信息,服務提供方如何在關閉後處理現有請求和心情求;服務啟動時,如何實現啟動預熱和延遲暴露。 ...
  • Collection常用方法彙總 Collection公共的方法 Collection是單列結合的祖宗介面,它的方法是所有單列集合都可以繼承使用的。 //把給定元素添加到集合中 public boolean add(E e) //把給定元素從集合中刪除 public boolean remove(E ...
  • 談談你對 Java 平臺的理解?“Java 是解釋執行”,這句話正確嗎? Java 本身是一種面向對象的語言,最顯著的特性有兩個方面,一是所謂的“一處編譯,處處運行”(Write once,run anywhere),能夠非常容易地獲得跨平臺能力;另外就是垃圾收集(GC,Garbage Collec ...
  • 首先我們來嘗試將分片的圖片複原為正常的圖片 這裡是六張切成小細條的圖片,原本是一張大圖的,現在我們用python將他們合併到一塊,題外話圖片來源於中華連環畫,*http://www.zhlhh.com/* 這個網站內有很多優秀的連環畫,而且大部分都是免費,推薦給大家 我的思路是用matlib讀圖片, ...
  • IoC 反轉控制原則也被叫做依賴註入 DI, 容器按照配置註入實例化的對象. 本文將實現一個輕量化的 IoC 容器, 完成對象的實例化和註入, 基於註解不依賴於任何庫. (註解參考 JSR-330) ...
  • 隨著業務的發展,系統會越來越龐大,原本簡單穩定的功能,可能在不斷迭代後複雜度上升,潛在的風險也隨之暴露,導致最終服務不穩定,造成業務價值的損失。而為了減少這種情況,其中一種比較好的方式就是提高代碼質量,比如通過代碼審查,從而降低錯誤風險,但是,代碼審查難度大,代碼缺陷、漏洞不易發現,且審查工作隨著代 ...
  • 作者:京東物流 王北永 姚再毅 1 背景 日常開發過程中,尤其在 DDD 過程中,經常遇到 VO/MODEL/PO 等領域模型的相互轉換。此時我們會一個欄位一個欄位進行 set|get 設置。要麼使用工具類進行暴力的屬性拷貝,在這個暴力屬性拷貝過程中好的工具更能提高程式的運行效率,反之引起性能低下、 ...
  • 對於logback的模板來說,我們是可以自定義的,同時它也提供了一些公開的常量,比如%level,%thread這些,我們如果希望自定義這些常量,需要實現ClassicConverter抽象類,重寫它的convert方法。 系統變數 %thread 當前線程 %d{yyyy-MM-dd HH:mm: ...
一周排行
    -Advertisement-
    Play Games
  • 不廢話,直接代碼 private Stack<Action> actionStack = new Stack<Action>(); private void SetCellValues() { var worksheet = Globals.ThisAddIn.Application.ActiveS ...
  • OpenAPI 規範是用於描述 HTTP API 的標準。該標準允許開發人員定義 API 的形狀,這些 API 可以插入到客戶端生成器、伺服器生成器、測試工具、文檔等中。儘管該標準具有普遍性和普遍性,但 ASP.NET Core 在框架內預設不提供對 OpenAPI 的支持。 當前 ASP.NET ...
  • @DateTimeFormat 和 @JsonFormat 是 Spring 和 Jackson 中用於處理日期時間格式的註解,它們有不同的作用: @DateTimeFormat @DateTimeFormat 是 Spring 框架提供的註解,用於指定字元串如何轉換為日期時間類型,以及如何格式化日 ...
  • 一、背景說明 1.1 效果演示 用python開發的爬蟲採集軟體,可自動抓取抖音評論數據,並且含二級評論! 為什麼有了源碼還開發界面軟體呢?方便不懂編程代碼的小白用戶使用,無需安裝python、無需懂代碼,雙擊打開即用! 軟體界面截圖: 爬取結果截圖: 以上。 1.2 演示視頻 軟體運行演示視頻:見 ...
  • SpringBoot筆記 SpringBoot文檔 官網: https://spring.io/projects/spring-boot 學習文檔: https://docs.spring.io/spring-boot/docs/current/reference/html/ 線上API: http ...
  • 作為後端工程師,多數情況都是給別人提供介面,寫的好不好使你得重視起來。 最近我手頭一些活,需要和外部公司對接,我們需要提供一個介面文檔,這樣可以節省雙方時間、也可以防止後續扯皮。這是就要考驗我的介面是否規範化。 1. 介面名稱清晰、明確 顧名思義,介面是做什麼的,是否準確、清晰?讓使用這一眼就能知道 ...
  • 本文介紹基於Python語言,遍歷文件夾並從中找到文件名稱符合我們需求的多個.txt格式文本文件,並從上述每一個文本文件中,找到我們需要的指定數據,最後得到所有文本文件中我們需要的數據的合集的方法~ ...
  • Java JUC&多線程 基礎完整版 目錄Java JUC&多線程 基礎完整版1、 多線程的第一種啟動方式之繼承Thread類2、多線程的第二種啟動方式之實現Runnable介面3、多線程的第三種實現方式之實現Callable介面4、多線的常用成員方法5、線程的優先順序6、守護線程7、線程的讓出8、線 ...
  • 實時識別關鍵詞是一種能夠將搜索結果提升至新的高度的API介面。它可以幫助我們更有效地分析文本,並提取出關鍵詞,以便進行進一步的處理和分析。 該介面是挖數據平臺提供的,有三種模式:精確模式、全模式和搜索引擎模式。不同的模式在分詞的方式上有所不同,適用於不同的場景。 首先是精確模式。這種模式會儘量將句子 ...
  • 1 為啥要折騰搭建一個專屬圖床? 技術大佬寫博客都用 md 格式,要在多平臺發佈,圖片就得有外鏈 後續如博客遷移,國內博客網站如掘金,簡書,語雀等都做了防盜鏈,圖片無法遷移 2 為啥選擇CloudFlare R2 跳轉:https://dash.cloudflare.com/ 有白嫖額度 免費 CD ...