概述
1.区别:remove()
for循环中集合删除元素会报错,因为list.size()的大小变化了
for(int i=0;i<list.size();i++){
list.remove(i);
}
而iterator不会报错,因为iterator的remove()不仅可以删除元素,还会维护一个标识,用来记录目前是不是可删除状态:如:不能连续调用两次remove()方法,调用之前需至少一次next();
2.区别:效率
底层是数组:ArrayList 随机访问比较快 for循环
底层是链表:LinkList: 顺序访问比较快 Iterator
forEach 是Iterator的实现
注意一点:迭代出来的元素都是原来计划元素的拷贝,java集合中保存元素的实质是对象的引用,而非对象本身。
常用方法:JDK1.5之前
(1)集合使用iterator()返回一个Iterator,Iterator将准备好返回序列的第一个元素
(2)使用next()获得序列的下一个元素
(3)hasNext()判断是否有下一个元素
(4)使用remove()将迭代器返回的元素删除
JDK1.8后:lambda
最后
以上就是直率悟空为你收集整理的Iterator迭代器与for循环的全部内容,希望文章能够帮你解决Iterator迭代器与for循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复