From ed5ad940a99e7e6386caa85fd01588a64220fa22 Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Wed, 5 Nov 2014 00:55:06 +0100 Subject: Assignment No.6 added first version --- src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java | 81 ++++++++++++++++ .../fhswf/in/inf/java1/aufgabe6/ListBenchmark.java | 102 +++++++++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java create mode 100644 src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java (limited to 'src/de/fhswf') diff --git a/src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java b/src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java new file mode 100644 index 0000000..ddb82d1 --- /dev/null +++ b/src/de/fhswf/in/inf/java1/aufgabe6/Aufgabe6.java @@ -0,0 +1,81 @@ +/** + * + */ +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. + * + * @author $Author: $ + * @version $Revision: $, $Date: $ UTC + */ +public final class Aufgabe6 +{ + + /** + * Prevents instantiation of the utility class. + * + */ + private Aufgabe6() + { + } + + /** + * Main function for testing Vectors and Lists. + * + * @param args + * Command line arguments. + */ + public static void main(String[] args) + { + final int testLength = 100000000; + Vector test = new Vector<>(testLength); + Integer testGet; + + for (int i = 0; i < test.capacity(); i++) + { + test.add(i); + } + + long start; + start = System.currentTimeMillis(); // Gets current time in µs + + for (int i = 0; i < test.size(); i++) + { + testGet = test.elementAt(i); + } + + // Calculates the runtime of for + System.out.println("Elapsed time: " + + (System.currentTimeMillis() - start) + " ms"); + + start = System.currentTimeMillis(); // Gets current time in µs + + for (Iterator it = test.iterator(); it.hasNext();) + { + testGet = it.next(); + } + + // Calculates the runtime of for + System.out.println("Elapsed time: " + + (System.currentTimeMillis() - start) + " ms"); + + start = System.currentTimeMillis(); // Gets current time in µs + + for (Integer integer : test) + { + testGet = integer; + } + + // Calculates the runtime of foreach + System.out.println("Elapsed time: " + + (System.currentTimeMillis() - start) + " ms"); + + } + +} diff --git a/src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java b/src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java new file mode 100644 index 0000000..a98cdd6 --- /dev/null +++ b/src/de/fhswf/in/inf/java1/aufgabe6/ListBenchmark.java @@ -0,0 +1,102 @@ +/** + * + */ +package de.fhswf.in.inf.java1.aufgabe6; + +import java.util.List; +import java.util.Random; + +/** + * TODO Add comment here + * + * @author $Author: $ + * @version $Revision: $, $Date: $ UTC + */ +public final class ListBenchmark +{ + + private final Integer testObj = new Integer(214); + + /** + * Prevents instantiation of the utility class. + * + */ + private ListBenchmark() + { + } + + /** + * Starts a benchmark of different Lists and different test cases. + * + */ + public void startBenchmark() + { + + } + + /** + * TODO Add method comment here + * + * @param list + * @param times + * @return + */ + private 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); + } + + return (System.currentTimeMillis() - start); // Returns runtime + } + + /** + * TODO Add method comment here + * + * @param list + * @param times + * @return + */ + private 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); + } + + return (System.currentTimeMillis() - start); // Returns runtime + } + + /** + * TODO Add method comment here + * + * @param list + * @param times + * @return + */ + private long benchmarkAtRandom(List list, int times) + { + + int[] randVal = new int[times]; + Random rand = new Random(); + + for (int i = 0; i < randVal.length; i++) + { + 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); + } + + return (System.currentTimeMillis() - start); // Returns runtime + } +} -- cgit v1.2.3-70-g09d2