您的位置:首页 > 编程语言 > Java开发

Java迭代与枚举

2017-02-22 16:55 246 查看
正如大家所知,迭代和枚举主要用于遍历集合对象。枚举可以应用于Vector和Hashtable,迭代主要用于集合对象。

迭代与枚举的差异:

* 枚举比迭代快两倍而且消耗更少的内存。

* 枚举更适合基本需求,而迭代是相对更安全,

* 因为在遍历集合的时候,迭代器会阻止其他线程修改集合对象。

* 如果有其他线程要修改集合对象,会立即抛出ConcurrentModificationException。

* 我们称其为快速失败迭代器,因为它快速,明了的抛出了异常。

下面是代码示例;

但是迭代器提供了一种安全的方式,可以迭代过程中删除从底层集合中的元素。

看下迭代器的实现。Collection的其他实现类支撑了这里的remove()方法。

上面的程序可以重写为:

需要注意的是:Iterator.remove()是唯一一种可以在迭代过程中安全修改集合的方式。

在枚举中,没有安全的方式可以在遍历集合的时候删除元素。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息