import java.util.*;
import java.io.*;
public class ArrayListDriver {
public static void main (String[] args) {
ArrayList<String> a = new ArrayList<String>();
ArrayList<String> b = new ArrayList<String>();
long start, end, difference;
int count = 10;
/* RESULTS
Adding: 100000
Adding from end: 21
Adding at beginning: 2839
Removing: 100000
Removing from beginning: 2691
Removing from end: 1
Adding: 10000
Adding from end: 2
Adding at beginning: 49
Removing: 10000
Removing from beginning: 50
Removing from end: 3
Adding: 1000
Adding from end: 0
Adding at beginning: 1
Removing: 1000
Removing from beginning: 0
Removing from end: 0
*/
//System.out.println("Adding: " + count);
//start = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
a.add(i + "");
}
//end = System.currentTimeMillis();
//difference = end - start;
//System.out.println("\nAdding from end: " + difference);
/*start = System.currentTimeMillis();
for (int i = 0; i <= count; i++) {
b.add(0, "x");
}
end = System.currentTimeMillis();
difference = end - start;
System.out.println("Adding at beginning: " + difference);
*/
System.out.println("\nReversing");
ArrayList<String> c = new ArrayList<String>(a.size());
System.out.println(a);
for (int i = 0; i < count; i++) {
c.add(a.get(count - 1 - i));
}
a = c;
System.out.println(a);
/*System.out.println("\nRemoving: " + count);
start = System.currentTimeMillis();
for (int i = 0; i <= count; i++) {
a.remove(0);
}
end = System.currentTimeMillis();
difference = end - start;
System.out.println("\nRemoving from beginning: " + difference);
start = System.currentTimeMillis();
for (int i = 0; i <= count; i++) {
b.remove(b.size() - 1);
}
end = System.currentTimeMillis();
difference = end - start;
System.out.println("Removing from end: " + difference);
*/
}
}