Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package my.super.duper.test.package;
- import org.apache.commons.lang.ArrayUtils;
- import java.text.DecimalFormat;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Benchmarks conversion from List<Integer> to int[] for different
- * size lists using pure java vs Apache Commons ArrayUtils.
- */
- public class ArrayUtilsBenchmark
- {
- private final static DecimalFormat DF = new DecimalFormat("#.##");
- public static void main(String[] args)
- {
- // run loops 1M times to warm up
- ArrayUtilsBenchmark test = new ArrayUtilsBenchmark();
- test.test(1000000);
- for (int i=2;i<2561;i+=i) {
- ArrayUtilsBenchmark testClass = new ArrayUtilsBenchmark();
- testClass.test(i);
- }
- }
- private void test(int numElements) {
- List<Integer> list1 = new ArrayList<Integer>(numElements);
- for (int i=0; i<numElements; i++) {
- list1.add(new Integer(i*((int)(Math.random()*100))));
- }
- System.out.println("Comparison for " + list1.size() + " elements");
- long start1 = System.nanoTime();
- int[] primList1 = convertPureJava(list1);
- final double dur1 = System.nanoTime() - start1;
- System.out.println("pure java: " + (long)dur1 + " ns");
- long start2 = System.nanoTime();
- int[] primList2 = convertArrayUtils(list1);
- final double dur2 = System.nanoTime() - start2;
- System.out.println("array utils: " + (long)dur2 + " ns");
- System.out.println("factor: "+ DF.format(dur1/dur2));
- System.out.println("----------------------------");
- }
- private static int[] convertPureJava(List<Integer> list)
- {
- int[] arrayOfInt = new int[list.size()];
- int i = 0;
- for (Integer tutId : list) {
- arrayOfInt[i] = tutId;
- i++;
- }
- return arrayOfInt;
- }
- private static int[] convertArrayUtils(List<Integer> list)
- {
- return ArrayUtils.toPrimitive(list.toArray(new Integer[list.size()]));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement