Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Flow.Collection;
- import java.util.ArrayList;
- import java.util.Random;
- public class Benchmark
- {
- public static void main(String[] args)
- {
- Object obj = new Object(); //For the purposes of testing, all items added and removed are precalculated. :D
- long startTime;
- {
- System.out.println("Adding/removing 10,000,000 items @ the end of the dynamic array...");
- startTime = System.currentTimeMillis();
- {
- ArrayList<Object> list = new ArrayList<Object>();
- for (int q = 0; q < 10000000; q++)
- list.add(obj);
- for (int q = list.size() - 1; q >= 0; q--)
- list.remove(q);
- }
- System.out.println("ArrayList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
- startTime = System.currentTimeMillis();
- {
- GapBufferList<Object> list = new GapBufferList<Object>();
- for (int q = 0; q < 10000000; q++)
- list.add(obj);
- for (int q = list.size() - 1; q >= 0; q--)
- list.remove(q);
- }
- System.out.println("GapBufferList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
- System.out.println();
- }
- {
- System.out.println("Adding/removing 100,000 items @ a random spot in the dynamic array...");
- startTime = System.currentTimeMillis();
- {
- Random rnd = new Random();
- ArrayList<Object> list = new ArrayList<Object>();
- for (int q = 1; q <= 100000; q++)
- list.add(rnd.nextInt(q), obj);
- long tempTime = System.currentTimeMillis();
- System.out.println(" - ArrayList add: " + (tempTime - startTime) + " milliseconds");
- for (int q = list.size(); q > 0; q--)
- list.remove(rnd.nextInt(q));
- System.out.println(" - ArrayList remove: " + (System.currentTimeMillis() - tempTime) + " milliseconds");
- }
- System.out.println("ArrayList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
- startTime = System.currentTimeMillis();
- {
- Random rnd = new Random();
- GapBufferList<Object> list = new GapBufferList<Object>();
- for (int q = 1; q <= 100000; q++)
- list.add(rnd.nextInt(q), obj);
- long tempTime = System.currentTimeMillis();
- System.out.println(" - GapBufferList add: " + (tempTime - startTime) + " milliseconds");
- for (int q = list.size(); q > 0; q--)
- list.remove(rnd.nextInt(q));
- System.out.println(" - GapBufferList remove: " + (System.currentTimeMillis() - tempTime) + " milliseconds");
- }
- System.out.println("GapBufferList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
- System.out.println();
- }
- {
- System.out.println("Adding/removing 100,000 items @ the beginning of the dynamic array...");
- startTime = System.currentTimeMillis();
- {
- ArrayList<Object> list = new ArrayList<Object>();
- for (int q = 1; q <= 100000; q++)
- list.add(0, obj);
- for (int q = list.size(); q > 0; q--)
- list.remove(0);
- }
- System.out.println("ArrayList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
- startTime = System.currentTimeMillis();
- {
- GapBufferList<Object> list = new GapBufferList<Object>();
- for (int q = 1; q <= 100000; q++)
- list.add(0, obj);
- for (int q = list.size(); q > 0; q--)
- list.remove(0);
- }
- System.out.println("GapBufferList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
- System.out.println();
- }
- System.out.println("Clearly, the GapBufferList is the better option.");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement