传统的 for循环来遍历一个集合:

// Not the best way to iterate over a collection!
for (Iterator<Element> i = c.iterator(); i.hasNext(); ) {
Element e = i.next();... // Do something with e
}

迭代数组的传统 for 循环的实例

// Not the best way to iterate over an array!
for (int i = 0; i < a.length; i++) {... // Do something with a[i]
}

迭代器和索引变量都很混乱——你只需要元素而已。

for-each 循环 (官方称为“增强的 for 语句”) 解决了所有这些问题

// The preferred idiom for iterating over collections and arrays
for (Element e : elements) {... // Do something with e
}

Effective Java~58. for-each 循环优先于传统的for 循环相关推荐

  1. 第46条:for-each循环优先于传统的for循环

    for-each循环通过完全隐藏迭代器或者索引变量,避免混乱和出错的可能,适用于集合和数组和任何实现Iterable接口的对象. 使用传统for循环,容易出错: enum Face { ONE, TW ...

  2. 《Effective Java》真的是一本值得一直去钻研的好书

    文章目录 <Effective Java>读书笔记 第一章 引言 第二章 创建和销毁对象 1 考虑使用静态工厂方法替代构造方法** 2 当构造方法参数过多时使用builder(建造者) 模 ...

  3. Effective Java读书笔记四:通用程序设计

    第45条:将局部变量的作用域最小化 在第一次使用变量时的地方声明: 几乎每个局部变量的声明都应该包含一个初始表达式: 如果在终止循环之后不需要循环变量的内容,for循环优于while循环.(for循环 ...

  4. 《Effective Java》--Java进阶必备

    <Effective Java>是 Java 领域的经典之作,其影响力不亚于<Think in Java>.它是每个 Java 开发者的必读书籍,值得多次阅读品味,并不断实践其 ...

  5. 《Effective Java》读书笔记

    引言 1 代码应该被重用 ,而不是被拷贝. 2 错误应该尽早被检测出来,最好是在编译时刻. 3 接口.类.数组是引用类型(对象), 基本类型不是 第二章 创建和销毁对象 1 考虑用静态工厂方法代替构造 ...

  6. 《Effective Java(第2版)》-Joshua Bloch等

    第2章 创建和销毁对象 第1条:考虑用工厂方法替代构造器 第2条:遇到多个构造器参数时要考虑用构建器 第3条:用私有构造器或者枚举类型强化Singleton属性 第4条:通过私有构造器强化不可实例化的 ...

  7. Effective Java读书笔记

    序列化 谨慎的实现Serializable接口 实现Serializable最大的代价,一旦这个类被发布就大大降低了改变这个类实现的灵活性,这个类中所有私有实例域都将变成导出API的一部分,不符合最低 ...

  8. 第 3 次读 Effective Java,这 58 个技巧最值!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:Dong GuoChao <Effective ...

  9. Effective Java之for-each循环优先于for循环(四十六)

    for循环的缺点: 对于for循环遍历,我们很容易出现这样的一些低级错误: 对于数组 for(int i = 0 ; i >100 ; i++) for(int i = 100 ; i > ...

最新文章

  1. Netmeeting的四个端口
  2. Oracle学习笔记之三,Oracle 11g数据库的启动与关闭
  3. android php mysql json 查询_android php mysql json
  4. 3.1 采购管理规划
  5. oracle非归档模式与归档模式的备份
  6. 高并发场景下的缓存 + 数据库双写不一致问题分析与解决方案设计
  7. PCIE万兆网卡-华硕XG-C100C
  8. Linux程序包管理和yum用法
  9. uniapp 在HBuilder X中配置微信小程序开发工具
  10. python短文本数据集的关联性_短文本分析----基于python的TF-IDF特征词标签自动化提取...
  11. AWSome Day 2019 线上云技术课堂(2)
  12. C++实践之华氏温度转摄氏温度
  13. 人都“爆”了有这么好的东西《vtdakz.com》顶硬了!
  14. SpringBoot生命周期
  15. 24点游戏开发实例(Qt含源码)
  16. CSS(Emmet语法、复合选择器、元素显示模式、背景)
  17. 摄像头各参数的意义_手机摄像头的一些主要参数表达了什么意思?
  18. 成都拓嘉辰丰电商:拼多多全店推广的作用
  19. Java项目:springboot在线心理咨询系统
  20. android wifi wps 流程,android中WiFi wps连接方式

热门文章

  1. 一种单独适配于NER的数据增强方法:DAGA
  2. Android官方开发文档Training系列课程中文版:创建自定义View之View的绘制
  3. 如何使用ListView实现一个带有网络请求,解析,分页,缓存的公共的List页面来大大的提高工作效率
  4. 考研心路历程2021北京交通大学计算机学院软件工程
  5. 12 操作系统第三章 内存管理 非连续分配管理方式 基本分页存储管理 基本分段存储管理 段页式存储管理
  6. 用VB.NET(Visual Basic 2010)封装EXCEL VBA为DLL_COM组件(二)
  7. vim 插件之commentary
  8. 国内2大Git代码托管网站
  9. Android开发中目前流行控件和知识点总结
  10. Hadoop伪分布式配置和搭建,hadoop单机安装,wordcount实例测试,hadoop安装java目录怎么找,问题及问题解决方法