Java迭代与枚举
2014-03-31 23:17
218 查看
正如大家所知,迭代和枚举主要用于遍历集合对象。枚举可以应用于Vector和Hashtable,迭代主要用于集合对象。
迭代与枚举的差异:
* 枚举比迭代快两倍而且消耗更少的内存。
* 枚举更适合基本需求,而迭代是相对更安全,
* 因为在遍历集合的时候,迭代器会阻止其他线程修改集合对象。
* 如果有其他线程要修改集合对象,会立即抛出ConcurrentModificationException。
* 我们称其为快速失败迭代器,因为它快速,明了的抛出了异常。
下面是代码示例;
但是迭代器提供了一种安全的方式,可以迭代过程中删除从底层集合中的元素。
看下迭代器的实现。Collection的其他实现类支撑了这里的remove()方法。
上面的程序可以重写为:
需要注意的是:Iterator.remove()是唯一一种可以在迭代过程中安全修改集合的方式。
在枚举中,没有安全的方式可以在遍历集合的时候删除元素。
迭代与枚举的差异:
* 枚举比迭代快两倍而且消耗更少的内存。
* 枚举更适合基本需求,而迭代是相对更安全,
* 因为在遍历集合的时候,迭代器会阻止其他线程修改集合对象。
* 如果有其他线程要修改集合对象,会立即抛出ConcurrentModificationException。
* 我们称其为快速失败迭代器,因为它快速,明了的抛出了异常。
下面是代码示例;
看下迭代器的实现。Collection的其他实现类支撑了这里的remove()方法。
在枚举中,没有安全的方式可以在遍历集合的时候删除元素。
相关文章推荐
- java中用于遍历集合对象的迭代和枚举
- Java中的枚举和迭代
- Java集合之枚举和迭代
- Java迭代与枚举
- java枚举概念
- java 枚举常见用法
- java 枚举的简单使用(enum)
- Java 枚举7常见种用法(转)
- javascript递归、循环、迭代、遍历和枚举概念
- JAVA迭代:foreach语法测试,简约实用
- 黑马程序员_java基础加强学习之枚举
- JAVA高新技术——枚举
- Java枚举、静态导入、自动拆装箱、增强for循环、可变参数
- java枚举的使用
- 黑马程序员_java高新技术(2)枚举
- Java高新技术之枚举
- Java中数组 枚举 内部类
- java枚举用法小结
- Java中怎样由枚举常量的ordinal值获得枚举常量对象
- Java JDBC简单入门之枚举(Enum)、泛型、反射、JDBC整合