import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
public class WhichIsFaster
{
List<Integer> a = new ArrayList<Integer>();
List<Integer> l = new LinkedList<Integer>();
long timeStart[] = new long[2];
long timeEnd[] = new long[2];
Random r = new Random();
public void testAdd()
{
System.out.println("/n------------随机添加-----------------/n");
for (int i = 0; i < 10000; i++)
{
a.add(null);
l.add(null);
}
timeStart[0] = System.currentTimeMillis();
for (int i = 0; i < 10000; i++)
{
a.set(r.nextInt(10000), r.nextInt(10000));
}
timeEnd[0] = System.currentTimeMillis();
timeStart[1] = System.currentTimeMillis();
for (int i = 0; i < 10000; i++)
{
l.set(r.nextInt(10000),r.nextInt(10000));
}
timeEnd[1] = System.currentTimeMillis();
System.out.println("ArrayList 用时/t:" + (timeEnd[0] - timeStart[0]));
System.out.println("LinkedList 用时/t:" + (timeEnd[1] - timeStart[1]));
}
public void testGet()
{
System.out.println("/n------------随机存取-----------------/n");
timeStart[0] = System.currentTimeMillis();
for (int i = 0; i < 100000; i++)
{
a.get(r.nextInt(10000));
}
timeEnd[0] = System.currentTimeMillis();
timeStart[1] = System.currentTimeMillis();
for (int i = 0; i < 100000; i++)
{
l.get(r.nextInt(10000));
}
timeEnd[1] = System.currentTimeMillis();
System.out.println("ArrayList 用时/t:" + (timeEnd[0] - timeStart[0]));
System.out.println("LinkedList 用时/t:" + (timeEnd[1] - timeStart[1]));
}
public void testDel()
{
System.out.println("/n------------随机删除-----------------/n");
timeStart[0] = System.currentTimeMillis();
for (int i = 0; i < 1000; i++)
{
a.remove(r.nextInt(a.size()));
}
timeEnd[0] = System.currentTimeMillis();
timeStart[1] = System.currentTimeMillis();
for (int i = 0; i < 10000; i++)
{
l.remove(r.nextInt(l.size()));
}
timeEnd[1] = System.currentTimeMillis();
System.out.println("ArrayList 用时/t:" + (timeEnd[0] - timeStart[0]));
System.out.println("LinkedList 用时/t:" + (timeEnd[1] - timeStart[1]));
}
public static void main(String[] args)
{
WhichIsFaster t = new WhichIsFaster();
t.testAdd();
t.testGet();
t.testDel();
}
// 把100000换成10000试一试
}
===================================================================
------------随机添加-----------------
ArrayList 用时 :0
LinkedList 用时 :94
------------随机存取-----------------
ArrayList 用时 :0
LinkedList 用时 :1656
------------随机删除-----------------
ArrayList 用时 :32
LinkedList 用时 :78