Java中LinkedList与ArrayList遍历速度比较
2012-01-04 11:33
573 查看
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(ArrayList和LinkedList)、(HashTable与HashMap)、(HashMap、Hashtable、LinkedHashMap和TreeMap比较)
- java中ArrayList与LinkedList的比较
- Java中ArrayList和LinkedList的比较
- Java Collections Framework - Java集合框架之List篇 ArrayList与LinkedList等的性能比较
- Java 容器 & 泛型:二、ArrayList 、LinkedList和Vector比较
- Java集合源码学习笔记(五)ArrayList,LinkedList,Vector和Hashtable,HashMap的比较
- Java 容器 & 泛型:二、ArrayList 、LinkedList和Vector比较
- Java:集合,Array、Collection(List/Set/Queue)、Map的遍历,比如:ArrayList,LinkedList,HashSet,HashMap
- java性能优化-Arraylist与Linkedlist整改查性能比较
- Java性能优化-Arraylist与Linkedlist整改查性能比较的简介与内容
- Java中ArrayList和LinkedList的遍历与性能分析
- java的list几种实现方式的效率(ArrayList、LinkedList、Vector、Stack),以及 java时间戳的三种获取方式比较
- Java记录 -50- ArrayList与LinkedList比较分析
- Java基础之ArrayList、LinkedList、Vector比较之代码示例
- java的list几种实现方式的效率(ArrayList、LinkedList、Vector、Stack),以及 java时间戳的三种获取方式比较
- Java Collections Framework - Java集合框架之List篇 ArrayList与LinkedList等的性能比较
- java-集合(4)-用LinkedList来实现栈/队列-ArrayList和LinkedList比较
- Java 容器 & 泛型(2):ArrayList 、LinkedList和Vector比较
- java(20130801)异常、集合、ArrayList和LinkedList的比较、Vector和ArrayList的异同
- 面试Java基础之ArrayList、LinkedList、Vector比较