- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(ArrayLst和LnkedLst的几种循环遍历方式及性能对比分析
主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论。通过本文你可以了解(1)List的五种遍历方式及各自性能 (2)foreach及Iterator的实现 (3)加深对ArrayList和LinkedList实现的了解。阅读本文前希望你已经了解ArrayList顺序存储和LinkedList链式的结构,本文不对此进行介绍。
相关:HashMap循环遍历方式及其性能对比
?
1. List的五种遍历方式下面只是简单介绍各种遍历示例(以ArrayList为例),各自优劣会在本文后面进行分析给出结论。(1) for each循环
Java
1
2
3
4 ListInteger list = new ArrayListInteger();
for (Integer j : list) {
// use j
} ?
(2) 显示调用集合迭代器
Java
1
2
3
4 ListInteger list = new ArrayListInteger();
for (IteratorInteger iterator = list.iterator(); iterator.hasNext();) {
iterator.next();
} 或
Java
1
2
3
4
5 ListInteger list = new ArrayListInteger();
IteratorInteger iterator = list.iterator();
while (iterator.hasNext()) {
iterator.next();
} ?
(3) 下标递增循环,终止条件为每次调用size()函数比较判断
Java
1
2
3
4 ListInteger list = new ArrayListInteger();
for (int j = 0; j list.size(); j++) {
list.get(j);
} ?
(4) 下标递增循环,终止条件为和等于size()的临时变量比较判断
Java
1
2
3
4
5 ListInteger list = new ArrayListInteger();
int size = list.size();
for (int j = 0; j size; j++) {
list.get(j);
} ?
(5) 下标递减循环
Java
1
2
3
4 ListInteger list = new ArrayListInteger();
for (int j = list.size() - 1; j = 0; j--) {
list.get(j);
} 在测试前大家可以根据对ArrayList和LinkedList数据结构及Iterator的了解,想想上面五种遍历方式哪个性能更优。
?
2、List五种遍历方式的性能测试及对比以下是性能测试代码,会输出不同数量级大小的ArrayList和LinkedList各种遍历方式所花费的时间。
ArrayList和LinkedList循环性能对比测试代码
PS:如果运行报异常in thread “main” java.lang.OutOfMemoryError: Java heap space,请将main函数里面list size的大小减小。
其中getArrayLists函数会返回不同size的ArrayList,getLinkedLists函数会返回不同size的LinkedList。loopListCompare函数会分别用上面的遍历方式1-5去遍历每一个list数组(包含不同大小list)中的list。print开头函数为输出辅助函数。
?
测试环境为Windows7 32位系统 3.2G双核CPU 4G内存,Java 7,Eclipse -Xms512m -Xmx512m最终测试结果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 compare loop performance of ArrayList
-----------------------------------------------------------------------
list size??????????????| 10,000????| 100,000?? | 1,000,000 | 10,000,000
------------------------
您可能关注的文档
- (A06校园安全综合问题研究流行病暴力.doc
- [减压空晒保护全玻璃真空热管集热元件.doc
- [减压阀论文.doc
- (A1.4中学教育心理学试题按照章节分类.doc
- (A19实验学校小学部综合实践活动课程学校实施方案.doc
- (A1理专业毕业综合考试复习辅导带答案.doc
- (A1答案A.doc
- (A20709答案Arev.doc
- (A21A中国式管理系列课程—分层授权VS分层负责讲义考题.doc
- (A22跨国公司如何选拔和培养职业经理人试题.doc
- 2024-2025学年高中英语高二上册上海新世纪版教学设计合集.docx
- 2024-2025学年小学音乐二年级下册苏少版(2024)教学设计合集.docx
- 2024-2025学年小学科学一年级上册冀人版(2024)教学设计合集.docx
- 2024-2025学年小学科学四年级下册粤教粤科版(2017秋)教学设计合集.docx
- 2024-2025学年高中物理必修 第三册鲁科版(2019)教学设计合集.docx
- 2024-2025学年高中数学必修 第三册人教B版(2019)教学设计合集.docx
- 2024-2025学年初中历史世界历史 第一册统编版(五四学制)教学设计合集.docx
- 2024-2025学年初中数学七年级上册人教版(五四学制)教学设计合集.docx
- 2024-2025学年小学劳动四年级下册人民版《劳动》(2022)教学设计合集.docx
- 2024-2025学年初中物理九年级上册粤沪版(2024)教学设计合集.docx
最近下载
- 人教版小学五年级下册数学精品教学课件 第5单元 图形的运动(三) 第1课时 图形的旋转变化(新).ppt VIP
- 光伏施工进度计划.pdf
- EIM1 单元复习单 Unit 12 What a brave person!基础知识+练习题.pdf
- 东芝Activion 16层多排螺旋CT操作手册2.pdf
- 小学数学教师如何听课评课.ppt
- 国家重点节能低碳技术推广目录(第一批)(节能部分).doc VIP
- 汽车空调压缩机的可靠性试验(建筑技术科学论文资料).doc
- PHC预制管桩基础施工方案.doc
- Unit1ReadingBeacriticalnewsreader!第一课时课件-高中英语牛津译林版选择性必修第二册.pptx
- 公司组织架构图【可修改】.pdf
文档评论(0)