对加强for循环的感悟
来源:互联网 发布:淘宝店铺分类链接 编辑:程序博客网 时间:2024/05/21 17:35
以前总是对加强for循环这个东西存在疑虑,难道仅仅比普通的for循环写起来更好看,更顺眼?性能上果真没有差异吗?今天看java数据结构的时候,突然想明白了这个问题,在一些时候,加强for循环会比普通的for循环效率高很多,大家一般在遍历list的时候都会使用加强for循环,但是为什么这样用,相信没有多少人明白其中的道理,ArrayList和LinkedList的区别相信大家都知道,ArrayList类似于数组的结构,删除和插入元素的时候,这个元素后面所有的元素都会移动变化,所以效率不高,但是查询的时候,因为元素有下标所以能够很快的查找出来,而LinkedList恰恰相反,插入和修改元素的时候,仅仅需要修改前后元素的引用就可以,所有元素位置都不需要移动,所以效率会很高,但是查询的时候就要去遍历整个链表了,效率自然就低了。
当我们分别需要遍历一个ArrayList和LinkedList的元素求和的时候,如果用普通for循环,ArrayList调用自己的get方法,一个个的取出来,效率很高,所用时间为O(N),但是LinkedList却由于自身结构的原因效率就很低了,所用时间为O(N2),这时候加强for循环就派上用场 了,加强for循环的原理就是利用iterator遍历容器,会使被遍历的list有效的从一项到下一项的推进,而不是像普通for循环一样调用list的get方法,对于LinkedList来说,每调用一次get都会遍历链表,这样,无论是ArrayList还是LinkedList,他们所用的时间都会是O(N)。
所以在遍历list的时候使用加强for循环是明智的选择,以上只是我自己的理解!
- 对加强for循环的感悟
- 加强for循环对集合的修改的理解
- 加强版的for循环
- JAVA 加强版的for循环
- 加强for循环
- 加强版for循环
- For-each循环优于for循环感悟
- 又一淘宝笔试重点——加强的for 循环
- jdk 1.5新特性--for 循环加强
- 可变形参与加强for循环--
- [Java5新特性]加强For循环
- 赞 :java 加强版for循环
- Java foreach(加强for循环)
- 对for循环的简单理解
- 对For循环执行顺序的理解
- 我对循环for的理解
- 对for()循环的理解
- 盘点JDK1.5的新特性(三)——加强for循环
- 近期计划
- MySql 链接url 参数详解
- HDU 4709 Herding
- hdu(4715) Difference Between Primes
- 统计二进制数字中1的个数
- 对加强for循环的感悟
- iOS后台播放背景音乐文件
- hive表信息,以及查看数据的些
- 利用POI技术把excel数据导入mysql
- gearman杂谈
- 二、计算机的基本组成
- 数组中存储不定个数的元素
- iPhone应用设计趋势
- Ubuntu系统下Dr.Com拨号上网设置