欢迎来到天天文库
浏览记录
ID:20485094
大小:155.00 KB
页数:9页
时间:2018-10-11
《ArrayList和LinkedList的几种循环遍历方式及性能对比分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、.主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论。通过本文你可以了解(1)List的五种遍历方式及各自性能(2)foreach及Iterator的实现(3)加深对ArrayList和LinkedList实现的了解。阅读本文前希望你已经了解ArrayList顺序存储和LinkedList链式的结构,本文不对此进行介绍。相关:HashMap循环遍历方式及其性能对比 1.List的五种遍历方式下面只是简单介绍各种遍历示例(以ArrayList为例),各自优劣会在本文
2、后面进行分析给出结论。(1)foreach循环Java1234Listlist=newArrayList();for(Integerj:list){//usej} (2)显示调用集合迭代器Java1234Listlist=newArrayList();for(Iteratoriterator=list.iterator();iterator.hasNext();){iterator.next();}或Java1234Listlist=newArrayList();Ite
3、ratoriterator=list.iterator();while(iterator.hasNext()){iterator.next();..5} (3)下标递增循环,终止条件为每次调用size()函数比较判断Java1234Listlist=newArrayList();for(intj=0;jlist=newArrayList();intsi
4、ze=list.size();for(intj=0;jlist=newArrayList();for(intj=list.size()-1;j>=0;j--){list.get(j);}在测试前大家可以根据对ArrayList和LinkedList数据结构及Iterator的了解,想想上面五种遍历方式哪个性能更优。 2、List五种遍历方式的性能测试及对比以下是性能测试代码,会输出不同数量级大小的ArrayList和LinkedList各种遍历方式所花费的时间。Arr
5、ayList和LinkedList循环性能对比测试代码..PS:如果运行报异常inthread“main”java.lang.OutOfMemoryError:Javaheapspace,请将main函数里面listsize的大小减小。其中getArrayLists函数会返回不同size的ArrayList,getLinkedLists函数会返回不同size的LinkedList。loopListCompare函数会分别用上面的遍历方式1-5去遍历每一个list数组(包含不同大小list)中的list。print开头函数为输出辅助函数。 测试环境为Windows732位系统3.2G双核CPU4
6、G内存,Java7,Eclipse-Xms512m-Xmx512m最终测试结果如下:123456789101112131415161718192021222324252627compareloopperformanceofArrayList-----------------------------------------------------------------------listsize
7、10,000
8、100,000
9、1,000,000
10、10,000,000---------------------------------------------
11、--------------------------foreach
12、1ms
13、3ms
14、14ms
15、152ms -----------------------------------------------------------------------foriterator
16、0ms
17、1ms
18、1
此文档下载收益归作者所有