第58条 for-each循环优先于传统的for循环
- for-each 相较于使用迭代器或者传统for循环遍历数组的方式,主要减少了变量(迭代器变量或索引变量)出现的次数。减少变量出现次数就能减少出错可能。
- 增强for循环有3个场景不能使用:
- 在循环的时候删除内容。可以使用新的
removeIf
方法 - 替换元素的值
- 平行迭代(两个list的下表统一一起往前移)
- 在循环的时候删除内容。可以使用新的
思考
书中的例子一开始我也没看出来问题在哪儿,后来才反应过来,iterator.next方法会一直增长,一方面是我没有经常使用iterator,另一方面也是提醒我们尽量避免频繁使用迭代器。增强for循环的最大作用就是遍历,其它的场景相对不是很适合。Java8里面的Stream
和Collection
的forEach
比增强for循环的要求还要高,循环体外面的所有内容相对于循环体都是final的。
第59条 了解和使用类库
- 通过使用标准类库,可以充分利用这些编写标准类库的专家的知识,以及在你之前的其他人的使用经验
- 选择的随机数生成器现在是
ThreadLocalRandom
和并行的SplittableRandom
。 - 我们需要熟悉java.lang、java.util和java.io的基础知识及其子包。
思考
这一条主要说的就是不要重复造轮子,当需要做一些看起来相当常见的事情时,第一时间可以去检查一下是否已经有代码实现了这一功能。这一条非常实用,能在平时的开发工作中大大提高我们的效率。