Effective Java第29条--将局部变量的作用域最小化
来源:互联网 发布:济南市社保查询软件 编辑:程序博客网 时间:2024/06/10 19:55
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">一,有两个迭代器的遍历:</span>
<span style="font-size:18px;">Iterate i = c1.iterator();while(i1.hasNext()){</span>
<span style="font-size:18px;"><span style="white-space:pre"></span>doSomething(i.next());}</span>
<pre name="code" class="java"><span style="font-size:18px;">i = c2.iterator();while(i.hasNext()){//由于复制粘贴导致忘记改变量名称</span>
<span style="font-size:18px;"><span></span>doSomething(i.next());}</span>
<span style="font-size: 24px;"><strong>在编译时不会报错,但是运行时,将会导致第二个迭代器不会遍历到。</strong></span>
<span style="font-size:24px;"><strong>优雅的修改如下:</strong></span>
<strong><span style="font-size:18px;"></span></strong>
<span style="font-size:18px;">for(Iterator i = c.iterator();i.hasNext();){ doSomething(i.next());}</span>
将i的作用域限制在for循环里面。
二,对于很大的数组的遍历,很多人喜欢直接使用游标遍历循环遍历,如下:
<span style="font-size:18px;">for(int i=0;i<list.size();i++){ doSomething(list.get(i));}</span><span style="font-size:24px;"></span>
这样做的话,当list很大的时候,每次迭代都要调用size方法,效率会降低。
建议:
<span style="font-size:18px;">for(int i=0,n=list.size();i<n;i++){ doSomething(list.get(i));}</span>
一开始时就初始化n,可以在n很大的时候提高效率。
by:guin_guo
0 0
- Effective Java第29条--将局部变量的作用域最小化
- Effective Java - 第45条:将局部变量的作用域最小化
- 《Effective java》读书记录-第45条-将局部变量的作用域最小化
- 2015062812 - EffactiveJava笔记 - 第45条 将局部变量的作用域最小化
- 第45条:将局部变量作用于最小化
- Java高效编码:将局部变量的作用域最小化
- 将局部变量的作用域最小化
- 第45条 通用程序设计——将局部变量的作用于最小化
- 29-将局部变量的作用域最小化
- java 局部变量的作用域最小化
- Java局部变量的作用域最小化
- Effective Java(2nd Edition) Item 45 最小化局部变量的作用域(译文)
- Effective Java(2nd Edition) Item 45 最小化局部变量的作用域
- 45条局部变量的作用域最小化
- (45):将局部变量的作用域最小化
- Effective Java读书笔记--将局部变量的作用域减小到最小
- Java之路(六) 局部变量作用域最小化
- 成员变量和局部变量同名 / 局部变量的作用域最小化
- 实现一个clone函数
- 【Hibernate步步为营】--关联映射之多对一
- 校第十六届大学生程序设计竞赛暨2016省赛集训队选拔赛(Problem E)
- 4444: [Scoi2015]国旗计划|贪心|倍增
- Java中父类与子类的普通代码块,构造代码块,静态代码块 初始化
- Effective Java第29条--将局部变量的作用域最小化
- android 高效开发工具
- 93. Restore IP Addresses
- Python 基础—— collections 模块
- 一个把Mathematica代码中符号转为unicode符号的网页
- 【Hibernate步步为营】--(一对多映射)之单向关联
- 对iOS 9 新增的控件 UIStackView 官方文档的翻译 第四部分
- 在MFC中显示opencv图像
- swift - Designated Initializer & Convenience Initializers