
当对集合进行元素迭代时,尽可能的使用 Streams API
…或者用新的集合方法,例如 forEach
. IntelliJ IDEA 会建议你这么做:
一般来说使用 Streams API 比起循环和 if 语句组合来得更加直观,例如:
IntelliJ IDEA 会建议这样的写法进行重构:
我做过的性能测试显示这种重构带来的结果比较奇怪,难以预测,有时候好,有时候坏,有时候没区别。一如既往的,如果你的应用对性能问题非常在意,请认真的进行衡量。
遍历数组时请用 for 循环
然后,使用 Java 8 并不意味着你一定要使用流 API 以及集合的新方法。IntelliJ IDEA 会建议一些做法改用流的方式重构,但你不一定非得接受 (记住 inspections can be suppressed 或者 turned off ).
特别是对一个原始类型的小数组时,使用 for 循环的性能是最好的,而且代码更具可读性(至少对 Streams API 的新手来说是这样):
任何的技巧和提示都不是一成不变的,你应该自己决定哪里需要使用 Streams API ,而哪里还用循环操作。
最后
我每天都在发现一些新的东西,有时候我的偏好会有所变化。例如我过去会讨厌方法的引用。非常期待倾听你的建议。