summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2014-11-05 09:05:00 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2014-11-05 09:05:00 +0100
commitd0abf9386a367432ab53ffddf45a4f140421ee70 (patch)
treeef92201337903fcf68819aebfbdb03ef1e468c8c /src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java
parented5ad940a99e7e6386caa85fd01588a64220fa22 (diff)
downloadJava1-d0abf9386a367432ab53ffddf45a4f140421ee70.tar.gz
Java1-d0abf9386a367432ab53ffddf45a4f140421ee70.zip
Assignment No.6 commented and implemented
Diffstat (limited to 'src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java')
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java69
1 files changed, 54 insertions, 15 deletions
diff --git a/src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java b/src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java
index a98cdd6..8f95c69 100644
--- a/src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java
+++ b/src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java
@@ -3,8 +3,11 @@
*/
package de.fhswf.in.inf.java1.aufgabe6;
+import java.util.ArrayList;
+import java.util.LinkedList;
import java.util.List;
import java.util.Random;
+import java.util.Vector;
/**
* TODO Add comment here
@@ -15,7 +18,7 @@ import java.util.Random;
public final class ListBenchmark
{
- private final Integer testObj = new Integer(214);
+ private static final Integer TESTOBJ = new Integer(214);
/**
* Prevents instantiation of the utility class.
@@ -29,57 +32,93 @@ public final class ListBenchmark
* Starts a benchmark of different Lists and different test cases.
*
*/
- public void startBenchmark()
+ public static void startBenchmark()
{
+ final int testListLength = 100000;
+ List<Integer> testList = new ArrayList<Integer>(testListLength);
+
+ System.out.print("ArrayList am Anfang: ");
+ System.out.println(benchmarkAtBeginning(testList, testListLength)
+ + " ms");
+ System.out.print("ArrayList am Ende: ");
+ System.out.println(benchmarkAtEnding(testList, testListLength) + " ms");
+ System.out.print("ArrayList zufälliger Index: ");
+ System.out.println(benchmarkAtRandom(testList, testListLength) + " ms");
+
+ testList = new Vector<Integer>(testListLength);
+
+ System.out.print("Vector am Anfang: ");
+ System.out.println(benchmarkAtBeginning(testList, testListLength)
+ + " ms");
+ System.out.print("Vector am Ende: ");
+ System.out.println(benchmarkAtEnding(testList, testListLength) + " ms");
+ System.out.print("Vector zufälliger Index: ");
+ System.out.println(benchmarkAtRandom(testList, testListLength) + " ms");
+
+ testList = new LinkedList<Integer>();
+
+ System.out.print("LinkedList am Anfang: ");
+ System.out.println(benchmarkAtBeginning(testList, testListLength)
+ + " ms");
+ System.out.print("LinkedList am Ende: ");
+ System.out.println(benchmarkAtEnding(testList, testListLength) + " ms");
+ System.out.print("LinkedList zufälliger Index: ");
+ System.out.println(benchmarkAtRandom(testList, testListLength) + " ms");
}
/**
- * TODO Add method comment here
+ * Inserts new value at the beginning of the list.
*
* @param list
+ * List to be tested.
* @param times
- * @return
+ * How many inserts are done.
+ * @return Time in milliseconds that the action took.
*/
- private long benchmarkAtBeginning(List<Integer> list, int times)
+ private static long benchmarkAtBeginning(List<Integer> list, int times)
{
long start = System.currentTimeMillis(); // Gets current time in µs
for (int i = 0; i < times; i++)
{
- list.add(0, testObj);
+ list.add(0, TESTOBJ);
}
return (System.currentTimeMillis() - start); // Returns runtime
}
/**
- * TODO Add method comment here
+ * Inserts new value at the end of the list.
*
* @param list
+ * List to be tested.
* @param times
- * @return
+ * How many inserts are done.
+ * @return Time in milliseconds that the action took.
*/
- private long benchmarkAtEnding(List<Integer> list, int times)
+ private static long benchmarkAtEnding(List<Integer> list, int times)
{
long start = System.currentTimeMillis(); // Gets current time in µs
for (int i = 0; i < times; i++)
{
- list.add(testObj);
+ list.add(TESTOBJ);
}
return (System.currentTimeMillis() - start); // Returns runtime
}
/**
- * TODO Add method comment here
+ * Inserts new value at a random index of the list.
*
* @param list
+ * List to be tested.
* @param times
- * @return
+ * How many inserts are done.
+ * @return Time in milliseconds that the action took.
*/
- private long benchmarkAtRandom(List<Integer> list, int times)
+ private static long benchmarkAtRandom(List<Integer> list, int times)
{
int[] randVal = new int[times];
@@ -87,14 +126,14 @@ public final class ListBenchmark
for (int i = 0; i < randVal.length; i++)
{
- randVal[i] = rand.nextInt(list.size()+i+1);
+ randVal[i] = rand.nextInt(list.size() + i + 1);
}
long start = System.currentTimeMillis(); // Gets current time in µs
for (int i = 0; i < times; i++)
{
- list.add(randVal[i], testObj);
+ list.add(randVal[i], TESTOBJ);
}
return (System.currentTimeMillis() - start); // Returns runtime