arrylistとlinkedlistの速度を比較するために追加

1217 ワード

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を使うadd(0,"whp");このようにlistに値を加えると、listはインデックスを上へ押すつまりlist.add(0,"whp");list.add(0,"whp1");list.add(0,"whp2");このようなコードの実行が完了するとlist.get(0)で得られた値はwhp 2である.list.get(1)で得られた値はwhp 1である.list.get(2)で得られた値はwhpである.リストに直接ならadd("whp");list.add("whp1");list.add("whp2");ではlist.get(0)で得られた値はwhpである.list.get(1)で得られた値はwhp 1である.list.get(2)で得られた値はwhp 2である.安全に保管されています