summaryrefslogtreecommitdiffstats
path: root/src/de
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
parented5ad940a99e7e6386caa85fd01588a64220fa22 (diff)
downloadJava1-d0abf9386a367432ab53ffddf45a4f140421ee70.tar.gz
Java1-d0abf9386a367432ab53ffddf45a4f140421ee70.zip
Assignment No.6 commented and implemented
Diffstat (limited to 'src/de')
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java12
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java69
2 files changed, 60 insertions, 21 deletions
diff --git a/src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java b/src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java
index ddb82d1..6326774 100644
--- a/src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java
+++ b/src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java
@@ -6,8 +6,6 @@ package de.fhswf.in.inf.java1.aufgabe6;
import java.util.Iterator;
import java.util.Vector;
-import de.fhswf.in.inf.java1.aufgabe4.Fill;
-
/**
* Main function for testing Vectors and Lists.
*
@@ -33,7 +31,7 @@ public final class Aufgabe6
*/
public static void main(String[] args)
{
- final int testLength = 100000000;
+ final int testLength = 10000;
Vector<Integer> test = new Vector<>(testLength);
Integer testGet;
@@ -43,7 +41,7 @@ public final class Aufgabe6
}
long start;
- start = System.currentTimeMillis(); // Gets current time in µs
+ start = System.currentTimeMillis(); // Gets current time in ms
for (int i = 0; i < test.size(); i++)
{
@@ -54,7 +52,7 @@ public final class Aufgabe6
System.out.println("Elapsed time: "
+ (System.currentTimeMillis() - start) + " ms");
- start = System.currentTimeMillis(); // Gets current time in µs
+ start = System.currentTimeMillis(); // Gets current time in ms
for (Iterator<Integer> it = test.iterator(); it.hasNext();)
{
@@ -65,7 +63,7 @@ public final class Aufgabe6
System.out.println("Elapsed time: "
+ (System.currentTimeMillis() - start) + " ms");
- start = System.currentTimeMillis(); // Gets current time in µs
+ start = System.currentTimeMillis(); // Gets current time in ms
for (Integer integer : test)
{
@@ -75,6 +73,8 @@ public final class Aufgabe6
// Calculates the runtime of foreach
System.out.println("Elapsed time: "
+ (System.currentTimeMillis() - start) + " ms");
+
+ ListBenchmark.startBenchmark();
}
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