package util; /** * Write a description of class Util here. * * @author (your name) * @version (a version number or a date) */ public class Util { public void printArray(int[] array) { for (int i = 0; i < array.length; ++i) { System.out.print(array[i]); // Prüfen, ob wir nicht beim letzten Element sind. // Auf das letzte Element sollte kein Komma folgen. if (i < array.length - 1) { System.out.print(","); } } // Nach Ausgabe brechen wir die Zeile um, damit folgende Ausgaben // in einer neuen Zeile beginnen. System.out.println(); } public int randomInt(int upperLimit) { double random = Math.random(); // Zufallszahl zwischen 0.0 und 1.0 holen. // Zufallszahl per Multiplikation auf 0.0-upperLimit skalieren random = random * upperLimit; // Nachkommastellen abschneiden und in Ganzzahlwert (int) umwandeln. int result = (int) random; return result; } public void fillArrayRandom(int[] array, int upperLimit) { for (int i = 0; i < array.length; ++i) { array[i] = randomInt(upperLimit); } } public int[] concatArray(int[] array0, int[] array1) { int[] result = new int[array0.length + array1.length]; // Manuelles Kopieren mit Schleifen. for (int i = 0; i < array0.length; ++i) { result[i] = array0[i]; } for (int i = 0; i < array1.length; ++i) { // Um array0.length verschoben einfügen. result[array0.length + i] = array1[i]; } // Alternative Lösung unter Verwendung von System.arraycopy(). // System.arraycopy(array0, 0, result, 0, array0.length); // System.arraycopy(array1, 0, result, array0.length, array1.length); return result; } public int findMax(int[] array) { int max = 0; boolean found = false; int loopRuns = 0; for (int i = 0; !found && i < array.length; ++i) { loopRuns++; if (array[i] > max) { max = array[i]; } } return loopRuns; } public int firstMatch(int[] array0, int[] array1) { int loopRuns = 0; for (int i = 0; i < array0.length; i++) { for (int j = 0; j < array1.length; j++) { loopRuns++; if (array0[i] == array1[j]) { return loopRuns; } } } return loopRuns; } public void fillArrayRandomRecursively(int[] array, int start, int upperLimit) { if (array.length - start <= 0) { return; } array[start] = randomInt(upperLimit); fillArrayRandomRecursively(array, start + 1, upperLimit); } public void testRandomFillRecursively() { Util util = new Util(); int[] valueArray = new int[100]; util.fillArrayRandomRecursively(valueArray, 0, 100); util.printArray(valueArray); } }