本帖最后由 ixiangfeng 于 2013-10-19 19:45 编辑
按理来说应该迭代ArrayList集合的时间要比迭代LinkedList集合的时间要大,但为什么下面这段代码测出来的结果好像相反的?请问下是什么原因
- import java.util.*;
- public class PerformanceTest
- {
- public static void main(String[] args)
- {
- //创建一个字符串数组
- String[] tst1 = new String[900000];
- //动态初始化数组元素
- for (int i = 0; i < 900000; i++)
- {
- tst1[i] = String.valueOf(i);
- }
- ArrayList al = new ArrayList();
- //将所有数组元素加入ArrayList集合中
- for (int i = 0; i < 900000 ; i++)
- {
- al.add(tst1[i]);
- }
- LinkedList ll = new LinkedList();
- //将所有数组元素加入LinkedList集合中
- for (int i = 0; i < 900000 ; i++)
- {
- ll.add(tst1[i]);
- }
- //迭代访问ArrayList集合的所有元素,并输出迭代时间
- long start = System.currentTimeMillis();
- for (Iterator it = al.iterator();it.hasNext() ; )
- {
- it.next();
- }
- System.out.println("迭代ArrayList集合元素的时间:"
- + (System.currentTimeMillis() - start));
- //迭代访问LinkedList集合的所有元素,并输出迭代时间
- start = System.currentTimeMillis();
- for (Iterator it = ll.iterator();it.hasNext() ; )
- {
- it.next();
- }
- System.out.println("迭代LinedList集合元素的时间:"
- + (System.currentTimeMillis() - start));
- }
- }
复制代码 结果:
迭代ArrayList集合元素的时间:14
迭代LinedList集合元素的时间:16
|