From d0abf9386a367432ab53ffddf45a4f140421ee70 Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Wed, 5 Nov 2014 09:05:00 +0100 Subject: Assignment No.6 commented and implemented --- src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java | 12 ++-- .../fhswf/in/inf/java1/aufgabe6/ListBenchmark.java | 69 +++++++++++++++++----- 2 files changed, 60 insertions(+), 21 deletions(-) (limited to 'src/de/fhswf/in/inf') 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 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 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 testList = new ArrayList(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(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(); + + 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 list, int times) + private static long benchmarkAtBeginning(List 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 list, int times) + private static long benchmarkAtEnding(List 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 list, int times) + private static long benchmarkAtRandom(List 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 -- cgit v1.2.3-70-g09d2