Effective Java Item 48:使用 parallel streams 要非常小心

整理 Effective Java 書中 Item 48: Use streams judiciously 心得筆記

主旨:parallel stream 用錯,效能與正確性可能雙雙出問題

Java 8 的 stream API 帶來了非常方便的資料處理方式,加上 .parallel() 方法,更是讓你只用一行就能平行運算聽起來很香。

但實際上呢?用錯地方,不僅效能沒提升,甚至會程式掛掉。平行化是進階優化技巧,不是萬靈丹。

Read more

Effective Java Item 47:回傳元素序列時優先使用 Collection 而非 Stream

整理 Effective Java 書中 Item 47: Prefer Collection to Stream 心得筆記

主旨:回傳元素序列時,應優先使用 Collection

Java 8 推出 streams 之後,我們在設計方法時有了新的回傳型別選擇。不過,若你要回傳一串元素,Collection 或其子型別通常仍是最合適的選擇,因為這樣使用者不論是想用 for-each 迴圈還是用 stream pipeline,都能方便操作。除非真的有特殊理由,否則不要只回傳 Stream。

Read more