Java中LinkedList与ArrayList遍历速度比较
来源:互联网 发布:linux chown命令 编辑:程序博客网 时间:2024/05/06 09:53
import java.util.LinkedList; import java.util.ArrayList; import java.util.Random;public class testList { private static Random random = new Random(); public static void main(String[] args){ ArrayList<String> arraylist = new ArrayList<String>(); LinkedList<String> linkedlist = new LinkedList<String>(); for(int i=0;i<50000;i++){ String r = randomString(); arraylist.add(r); linkedlist.add(r); } System.out.println("arraylist size "+arraylist.size()); System.out.println("linkedlist size "+linkedlist.size()); System.out.println("------"); long begin = System.currentTimeMillis(); for(int i=0;i<100;i++){ int size = arraylist.size(); for(int j=0;j<size;j++){ String s=arraylist.get(j); } } System.out.println("arraylist get(n) time "+(System.currentTimeMillis()-begin)); begin = System.currentTimeMillis(); for(int i=0;i<100;i++){ for(String s:arraylist){ } } System.out.println("arraylist foreach time "+(System.currentTimeMillis()-begin)); begin = System.currentTimeMillis(); for(int i=0;i<1;i++){ int size = linkedlist.size(); for(int j=0; j<size; j++){ String s=linkedlist.get(j); } } System.out.println("linkedlist get(n) time "+(System.currentTimeMillis()-begin)*100); begin = System.currentTimeMillis(); for(int i=0;i<100;i++) for(String s:linkedlist){ } System.out.println("linkedlist foreach time "+(System.currentTimeMillis()-begin)); } protected static String randomString() { return Long.toString(random.nextLong(), 36); } }
arraylist size 50000
linkedlist size 50000
------
arraylist get(n) time 47
arraylist foreach time 188
linkedlist get(n) time 215600
linkedlist foreach time 94
可以看到:
对于ArrayList,用get(i)遍历比用foreach快!
对于LinkedList,用get(i)遍历相当慢,用foreach比get(i)快!
因此对于遍历一个List,用arrayList的get(i)遍历是最快的!
- Java中LinkedList与ArrayList遍历速度比较
- java中ArrayList与LinkedList的比较
- Java中arraylist和linkedlist源码分析与性能比较
- LinkedList与ArrayList比较
- Arraylist与linkedList比较
- 【java】数组、arraylist、linkedlist随机访问和遍历性能比较
- java中ArrayList与LinkedList性能测试
- Java中ArrayList与LinkedList的区别
- java中arrayList与linkedList区别
- java中arraylist与linkedlist区别
- ArrayList 与 LinkedList性能比较
- Java ArrayList与LinkedList源码分析与比较
- java ArrayList与LinkedList的普通for循环遍历
- Java中遍历ArrayList比LinkedList快多少?
- Collection 中ArrayList、LinkedList、Vector、Set的比较与运用
- java性能优化-Arraylist与Linkedlist整改查性能比较
- java集合类(四)ArrayList与LinkedList比较
- Java记录 -50- ArrayList与LinkedList比较分析
- 五大算法之三--贪心算法
- VC Excel
- 大话设计模式-第0章-面向对象基础
- 五大算法之四--回溯法
- xml 中 内容的值里带参数
- Java中LinkedList与ArrayList遍历速度比较
- linux内核input子系统解析
- 动态规划 杭电1171 0-1背包和完全背包结合
- 如何获得rac环境中的主节点(how to identify master node in rac)
- Java冒泡排序算法
- 大话设计模式-第1章代码无错就是优?-简单的工厂模式
- 五大算法之五--分支限界法
- DirectShow学习之三媒体播放过程分析
- jprofiler 监控java程序的shell脚本