我是靠谱客的博主 无聊方盒,最近开发中收集的这篇文章主要介绍for循环遍历、foreach循环遍历、 iterator迭代器遍历,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. for循环针对ArrayList
for循环中的get()方法,采用的即是随机访问的方法,同时,ArrayList底层实现为Object数组,数组天然支持随机访问,时间复杂度为 O(1),所以称为快速随机访问,因此在ArrayList里,for循环较快。

2. foreach循环遍历
foreach循环中不能修改集合元素的值,否则会报错:Collection was modified; enumeration operation may not executeforeach
循环无法修改值的原因
在这里插入图片描述
从上面运行结果来看,由于在foreach循环中对数组元素进行赋值,结果导致不能正确遍历数组元素,不能正确地取出每个数组元素的值。而且当再次访问第-一个数组元素时,发现数组元素的值依然没有改变。不难看出,当使用foreach来迭代访问数组元素时,foreach 中的循环变量相当于一个临时变量,系统会把数组元素依次赋给这个临时变量,而这个临时变量并不是数组元素,它只是保存了数组元素的值。因此,如果希望改变数组元素的值,则不能使用这种foreach循环。

3. iterator针对LinkedList
iterator中的next()方法,采用的即是顺序访问的方法,同时,LinkedList 底层使用的是双向链表数据结构(JDK1.6之 前为循环链表,JDK1.7取消了循环),链表需要遍历到特定位置才能访问特定位置的元素,时间复杂度为 O(n),所以不支持快速随机访问,但是,iterator中的next()方法,采用的即是顺序访问的方法,因此在LinkedList里,使用iterator较快
迭代器应用:

       List list = new ArrayList<>();
	   list.add(1);
	   list.add(2);
       //方法一:
for (Iterator i =list.iterator(); i.hasNext();) {  
            int str = (int) i.next();  
            System.out.print(str);  
        } 
	  //方法二:
Iterator it = list.iterator();
while (it.hasNext()) {  
            int str = (int) it.next();  
            System.out.print(str);  
        }  

最后

以上就是无聊方盒为你收集整理的for循环遍历、foreach循环遍历、 iterator迭代器遍历的全部内容,希望文章能够帮你解决for循环遍历、foreach循环遍历、 iterator迭代器遍历所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部