`

以添加来比较arrylist与linkedlist的速度

阅读更多
package cn.ehoo.test;

import java.util.*;

public class ListDemo {
	static final int N = 50000;

	static long timeList(List<Object> list) { 
		long start = System.currentTimeMillis();
		Object o = new Object();
		for (int i = 0; i < N; i++)
			list.add(0, o);
		return System.currentTimeMillis() - start;
	}

	public static void main(String[] args) {
		System.out.println("ArrayList耗时:" + timeList(new ArrayList()));
		System.out.println("LinkedList耗时:" + timeList(new LinkedList()));
	}
}




输出的结果为:
ArrayList耗时:953
LinkedList耗时:0


在上面的程序中list.add时如果不要前面的0,而是直接用list.add(o);那么得到的值就会不一样的。测试来说linkedlist要比Arraylist用的时间多点。但差不了多少。



在list中用list.add(0,"whp");这样的方式向list中加入值时,list会把索引一直向上推也就是list.add(0,"whp");list.add(0,"whp1");list.add(0,"whp2");这样的代码执行完后,
list.get(0)得到的值是whp2。
list.get(1)得到的值是whp1。
list.get(2)得到的值是whp。

如果直接是list.add("whp");list.add("whp1");list.add("whp2");那么
list.get(0)得到的值是whp。
list.get(1)得到的值是whp1。
list.get(2)得到的值是whp2。是安顺序存放的



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics