import java.io.*;
import java.util.*;
public class Driver {
public static void main (String[] args) {
ArrayList<Integer> a1,a2,a3,a4;
//100:0
//1000:2
//10000:8
//100000:23
//1000000:47
a1 = new ArrayList<Integer>();
long start, t;
start = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
a1.add(3);
}
t = System.currentTimeMillis() - start;
System.out.println("It took " + (t) + " milliseconds to add to the end");
//100:0
//1000:3
//10000:39
//100000:5423
a2 = new ArrayList<Integer>();
start = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
a2.add(0,3);
}
t = System.currentTimeMillis() - start;
System.out.println("It took " + (t) + " milliseconds to add to the beggining");
//Removing elements from the end of our list:
//100:0
//1000:1
//10000:9
//100000:11
//1000000:38
start = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
a1.remove(a1.size()-1);
}
t = System.currentTimeMillis() - start;
System.out.println("It took " + (t) + " milliseconds to remove from the end");
//Removing elements from the beginning of our list:
//100:0
//1000:3
//10000:44
//100000:4972
//1000000: Java failed me
start = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
a2.remove(0);
}
t = System.currentTimeMillis() - start;
System.out.println("It took " + (t) + " milliseconds to remove from the begging");
a3 = new ArrayList<Integer>();
Random r = new Random();
int q = 100;
for (int i = 0; i < q; i++) {
a3.add(i,r.nextInt(1000));
}
System.out.println("Originally:" + a3.toString());
a4 = new ArrayList<Integer>(a3.size());
for (int i = 0; i < q; i++) {
int w = a3.get(q - 1 -i);
a4.add(i,w);
}
a3 = a4;
System.out.println("Reversed:" + a3.toString());
}
}