差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
java:effective_java:lambdas_and_streams:prefer_side-effect-free_functions_in_streams [2019/07/22 22:56] tony [Introduction & My Opinion] |
java:effective_java:lambdas_and_streams:prefer_side-effect-free_functions_in_streams [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
{{tag>java effective_java}} | {{tag>java effective_java}} | ||
- | ====== Effective Java - Prefer side-effect-free functions in streams (working..) ====== | + | ====== Effective Java - Prefer side-effect-free functions in streams ====== |
===== Introduction & My Opinion ===== | ===== Introduction & My Opinion ===== | ||
這個item要強調的是「stream中間處理過程所使用的function,應都屬於side-effect-free function」。side-effect-free function又稱為pure function,它意味著以下兩點: | 這個item要強調的是「stream中間處理過程所使用的function,應都屬於side-effect-free function」。side-effect-free function又稱為pure function,它意味著以下兩點: | ||
行 14: | 行 14: | ||
} | } | ||
</code> | </code> | ||
- | 這個寫法濫用了stream,因為它並沒有從stream中獲得容易閱讀的好處;修改完的結果如下: | + | 這個寫法濫用了stream,因為它並沒有從stream中獲得容易閱讀的好處;而且forEach適用於回報計算結果,而不是用於執行計算。修改完的結果如下: |
<code java> | <code java> | ||
Map<String, Long> freq; | Map<String, Long> freq; | ||
行 22: | 行 22: | ||
} | } | ||
</code> | </code> | ||
- | 這裡示範了collector與method reference,讓你的code稍微清晰(我想: 沒寫過Lambda的人可能還是看不懂這在幹嘛)。 | + | 這裡示範了collector與method reference,讓你的code稍微清晰,但沒寫過Lambda的人可能還是看不懂這在幹嘛。這個item的重點之一就是要你去弄清楚collector toList、toSet、toMap、groupingBy和join的用法。以後有時間我在針對這部分特別做說明。 |