import java.util.*;

class Main
{
    private static final int N = 100000;

    public static void main(String[] args)
    {
        testArrayList();
        testLinkedList();
    }

    public static void testArrayList()
    {
        ArrayList<Object> liste = new ArrayList<Object>();
        Object o = new Object();
        System.gc();
        long before = System.nanoTime();
        for (int i = N; i > 0; --i)
        {
            liste.add(0, o);
        }
        long after = System.nanoTime();
        long delta = after - before;
        double seconds = delta / 1000000000.0;
        System.out.printf("ArrayList:  %.2f seconds%n", seconds);
    }

    public static void testLinkedList()
    {
        LinkedList<Object> liste = new LinkedList<Object>();
        Object o = new Object();
        System.gc();
        long before = System.nanoTime();
        for (int i = N; i > 0; --i)
        {
            liste.add(0, o);
        }
        long after = System.nanoTime();
        long delta = after - before;
        double seconds = delta / 1000000000.0;
        System.out.printf("LinkedList: %.2f seconds%n", seconds);
    }
}
