遍历 List 之效率
2019独角兽企业重金招聘Python工程师标准>>>
1. 常用遍历 List 之方法
遍历 List 方法有三:
a) for (Iterator iterator = ls.iterator(); iterator.hasNext();)
b) for (int i = 0; i < ls.size(); i++)
c) for (Object object : ls) (java5+)
常用 List 实现有二:
a) java.util.ArrayList
b) java.util.LinkedList
效率如何?
2. 遍历方法之小误差验证
输出:
iterator-nanotime :7199195
arraylike-nanotime:1920143
foreach-nanotime :3775320
class java.util.LinkedList
iterator-nanotime :5430188
arraylike-nanotime:9148595046
foreach-nanotime :1677620
方法:
private static void nanoLoop(List ls){System.out.println(ls.getClass());{ // iteratorlong b = System.nanoTime();for (Iterator iterator = ls.iterator(); iterator.hasNext();) {Object object = (Object) iterator.next();}System.out.println("iterator-nanotime :"+(System.nanoTime()-b));}{ // array-likelong b = System.nanoTime();for (int i = 0; i < ls.size(); i++) {Object object = (Object) ls.get(i);}System.out.println("arraylike-nanotime:"+(System.nanoTime()-b));}{ // foreachlong b = System.nanoTime();for (Object object : ls) {Object s = (Object) object;}System.out.println("foreach-nanotime :"+(System.nanoTime()-b));}
}private static List initList(List ls,int count){for (int i = 0; i < count; i++) {ls.add("aaaa");}return ls;
}public static void main(String[] args) {nanoLoop(initList(new ArrayList(),10*10000));nanoLoop(initList(new LinkedList(),10*10000));
}
3. 鲁莽结论
* 黑盒情况下:foreach > iterator > arraylike
* ArrayList :arraylike>foreach >iterator
* LinkedList:foreach >iterator >>>arraylike
4. 刨根问底
read the fk source code -_-
已有 0 人发表留言,猛击->>这里<<-参与讨论
JavaEye推荐
- —软件人才免语言低担保 赴美带薪读研!—
转载于:https://my.oschina.net/trydofor/blog/9974
遍历 List 之效率相关推荐
- php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析
PHP遍历数组的三种方法及效率对比分析 发布于 2015-03-04 21:55:27 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...
- php遍历数组哪个效率高,PHP遍历数组的三种方法及效率对比分析_php技巧
本文实例分析了PHP遍历数组的三种方法及效率对比.分享给大家供大家参考.具体分析如下: 今天有个朋友问我一个问题php遍历数组的方法,告诉她了几个.顺便写个文章总结下,如果总结不全还请朋友们指出 第一 ...
- for-forEach-stream三种遍历方法执行效率比较与选用思考
文章目录 想法 设计 实现 结论 建议 想法 在JDK-8中,新添加了很多的方法,比如说现在我所说的forEach,该方法是用于集合遍历的,其方式相当于传统的for循环遍历方式,只是与其不同之处就 ...
- java几种遍历方式以及效率对比
几种遍历方式: /*** */ package effectiveUse;import java.util.Iterator; import java.util.List;/*** @author w ...
- Java8常用循环遍历操作方式的效率对比
其中 parallelStream() 为多线程遍历, 顺序会打乱, 根据适合场景使用 场景: 少量数据, 遍历数据修改操作 采用1000条数据遍历进行修改对象内容 @Testpublic void ...
- 二分法与简单遍历的效率比较
//****************二分法与简单遍历法的效率比较 #include <stdio.h> #include <malloc.h> #include <tim ...
- java RandomAccess 遍历效率
RandomAccess 是判断集合是否支持快速随即访问,以下是个测试用例: (转发http://jianchen.iteye.com/blog/291047) JDK中推荐的是对List集合尽量要实 ...
- OpenCV像素点邻域遍历效率比较,以及访问像素点的几种方法
OpenCV像素点邻域遍历效率比较,以及访问像素点的几种方法 前言: 以前笔者在项目中经常使用到OpenCV的算法,而大部分OpenCV的算法都需要进行遍历操作,而且很多遍历操作都是需要对目标像素点的 ...
- list遍历的四种方法及效率对比
ArrayList 代码如下: package com.danhar.mbox.fegin;import java.util.ArrayList; import java.util.Iterator; ...
最新文章
- 软件测试:黑盒白盒与动态静态之间有必然联系吗
- python os.system 不打印_Python初体验之我爱你
- 阿里云前端周刊 - 第 11 期
- CTFshow 反序列化 web266
- 可以响应各个方向CompoundDrawables点击操作的TextView的使用
- Spring Boot——自定义多个拦截器(HandlerInterceptor)配置方法与执行顺序
- 【Python图像特征的音乐序列生成】思路的转变
- grub rescue的修复方法
- 浅谈ORB-SLAM3
- [Java] 蓝桥杯 BASIC-10 基础练习 十进制转十六进制
- WinAPI 数据类型
- 如何用TortoiseSVN将项目代码提交到SVN
- oracle.exe占用cpu太高,360tray.exe占用CPU过高,怎么办
- 苹果公司邮箱联系大全
- iOS Wow体验 - 第四章 - 为应用的上下文环境而设计
- pygame 实现键盘鼠标映射
- Gravity 的测试调研 Gravity - TiDB
- 【初码干货】使用阿里云开放搜索服务快速搭建资源搜索网站
- 微软hackathon总结
- Bellman-Ford Spfa
热门文章
- matlab小波三维图,matlab小波包变换估计时变功率谱三维图出图和理想不一样
- Java继承_java继承
- MATLAB利用串口接收数据,并实时显示图形
- TensorFlow 笔记2--MNIST手写数字分类
- c++17(24)-枚举与switch
- 工业用微型计算机笔记(5)-指令系统(2)
- codeforces 7.22 F Pairwise Modulo
- 还说不会深度学习,三招帮你“炼丹”成功
- 【面试相关】非计算机专业如何1年内自学拿到算法offer
- GPU算力免费用?百度AI Studio两周年惊喜活动开启