java链表的get方法遍历VS使用迭代器遍历
来源:互联网 发布:上色软件 编辑:程序博客网 时间:2024/04/30 08:59
无论何种集合,应当允许用户以某种方式遍历集合,而不需要知道对象在集合中是如何表示及存储的,java集合框架为各种数据结构的集合,比如链表、散列表等都提供了迭代器。
某些集合根据其数据存储结构和所具有的操作也会提供返回数据的方法,例如LinkedList类中的get(int index)方法返回当前链表中第index个节点节点的对象。显然链表的get方法遍历比顺序表的get方法的速度慢。java推荐使用集合提供的迭代器,而不是集合本身来遍历其中的对象。因为迭代器遍历集合的方法在找到集合中的一个对象的同时,也得到带遍历的后继对象的引用,因此迭代器可以快速地遍历集合。
下面展示java链表的get方法遍历VS使用迭代器遍历的耗时对比
package test5;import java.util.LinkedList;import java.util.*;public class Main {public static void main(String[] args) {LinkedList<Integer> list=new LinkedList<Integer>();for(int i=0;i<65536;i++)list.add(new Integer(i));Iterator<Integer> iter=list.iterator();long st=System.currentTimeMillis();Integer t;for(int i=9;i<65536;i++)t=list.get(i);long et=System.currentTimeMillis();System.out.println("get方法遍历耗时:"+(et-st)+"ms");st=System.currentTimeMillis();while(iter.hasNext())t=iter.next();et=System.currentTimeMillis();System.out.println("迭代器遍历耗时:"+(et-st)+"ms");}}
结果:
get方法遍历耗时:1623ms
迭代器遍历耗时:7ms
显而易见,使用迭代器遍历占据明显优势。
0 0
- java链表的get方法遍历VS使用迭代器遍历
- LinkedList链表的遍历(迭代器遍历和get循环遍历)
- Java反射学习(利用反射遍历链表并执行所有对象的所有get方法)
- java遍历map的方法
- java遍历map的方法
- Java的HashMap遍历方法
- java 遍历hashMap的方法
- Java 遍历Map的方法
- java 遍历时间段的方法
- java遍历HashMap的方法
- java Hashtable的遍历方法
- JAVA 集合遍历的方法
- Java集合的遍历方法
- Java Map 遍历的方法
- Map遍历的方法java
- java 遍历时间段的方法
- Java 遍历Map的方法
- 【java】遍历Map的方法
- SoapUI脚本保存变量,加一BUG
- 系统当前时间
- 给CentOS6.3 + PHP5.3 安装PHP性能测试工具 XHProf-0.9.2
- 三、网页授权获取用户信息
- arm64 死在memcpy中:Unhandled fault: alignment fault
- java链表的get方法遍历VS使用迭代器遍历
- Android studio 启动不检查SDK
- ADO.NET 结构
- textview水平滚动
- SVN---回退功能
- A星算法 OC实现具体代码
- Maven
- eclipse安装与配置
- 使用JDK工具检查运行系统是否存在内存泄露