
當(dāng)對集合進(jìn)行元素迭代時,盡可能的使用 Streams API
…或者用新的集合方法,例如 forEach
. IntelliJ IDEA 會建議你這么做:
一般來說使用 Streams API 比起循環(huán)和 if 語句組合來得更加直觀,例如:
IntelliJ IDEA 會建議這樣的寫法進(jìn)行重構(gòu):
我做過的性能測試顯示這種重構(gòu)帶來的結(jié)果比較奇怪,難以預(yù)測,有時候好,有時候壞,有時候沒區(qū)別。一如既往的,如果你的應(yīng)用對性能問題非常在意,請認(rèn)真的進(jìn)行衡量。
遍歷數(shù)組時請用 for 循環(huán)
然后,使用 Java 8 并不意味著你一定要使用流 API 以及集合的新方法。IntelliJ IDEA 會建議一些做法改用流的方式重構(gòu),但你不一定非得接受 (記住 inspections can be suppressed 或者 turned off ).
特別是對一個原始類型的小數(shù)組時,使用 for 循環(huán)的性能是最好的,而且代碼更具可讀性(至少對 Streams API 的新手來說是這樣):
任何的技巧和提示都不是一成不變的,你應(yīng)該自己決定哪里需要使用 Streams API ,而哪里還用循環(huán)操作。
最后
我每天都在發(fā)現(xiàn)一些新的東西,有時候我的偏好會有所變化。例如我過去會討厭方法的引用。非常期待傾聽你的建議。