如果将类似的复制粘贴错误与for循环(for-each循环或传统循环)结合使用 , 则生成的代码就无法编译 。
for (Iterator
for循环比while循环还有一个优点:它更短 , 增强了可读性 。
下面是另一种对局部变量的作用域最小化的循环做法:
for (int i = 0, n = expensiveComputation(); i < n; i++) {... // Do something with i;}
它有两个循环变量 , i和n , 它们都具有完全相同的作用域 。第二个变量n用于存储第一个变量的限定值 , 从而避免了每次迭代中冗余计算的代价 。
最后一种“最小化局部变量作用域”的最终技术是保持方法小而集中 。如果把两个操作()合并到同一个方法中 , 与其中一个操作相关的局部变量就有可能会出现在执行另一个操作的代码范围之内 。为了防止这种情况发生 , 只需将方法分为两个:每个操作用一个方法完成 。
58 for-each循环优先于传统的for循环
下面是一个传统的for循环来遍历一个集合:
for (Iterator
下面是数组的传统for循环的实例:
for (int i = 0; i < a.length; i++) {... // Do something with a[i]}
它们并不完美 。迭代器和索引变量都很混乱 , 好在for-each循环解决了所有这些问题 。它通过隐藏迭代器或索引变量来消除
混乱和出错的机会:
for (Element e : elements) {... // Do something with e}
此外 , 使用for-each循环也不会降低性能
当涉及到嵌套迭代时 , for-each循环相对于传统for循环的优势甚至更大 。下面是人们在进行嵌套迭代时经
常犯的一个错误:
【带你快速看完9.8分神作《Effective Java》—— 通用编程篇】enum Suit { CLUB, DIAMOND, HEART, SPADE }enum Rank { ACE, DEUCE, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT,NINE, TEN, JACK, QUEEN, KING }...static Collection
- Neo4j和Cypher快速入门
- 睡觉鬼压床了怎样快速醒来 三招避免睡觉鬼压床
- 北风网 html5入门教程,HTML5+CSS3零基础快速入门
- 2020,哪些真实用例将推动区块链领域快速发展
- 2 源点-汇点最短路径快速算法-欧几得米试探法-类Dijkstra算法
- 如何快速的提高嵌入式的水平呢?
- 小程序开发工具_微信小程序开发工具教程,快速制作电商小程序
- 店铺快速破局,缺了实在RPA可不行
- 手机/实名信息/IP/域名 腾讯云账号忘记快速找回工具多渠道找回
- ICIP2020:VVC无损模式中ISP的快速实现