package utils;
/**
Sammlung von Dienstleistern für die Arbeit mit Array.
*/
public class ArrayUtility {
/**
Initialisiert
alle Sub-Arrays der Elemente des Arrays arr
mit Zufallswerten aus dem Interval
[min,
max]
.
@param arr
@param min
@param max
*/
public static void initializeArray(int[][] arr, int min, int max) {
initializeArray(arr, 0, arr.length - 1, min, max);
}
/**
Initialisiert
die Sub-Arrays der Elemente des Arrays arr
von startIndex
bis stopIndex
mit Zufallswerten aus dem Interval
[min,
max]
.
@param arr
@param startIndex
@param stopIndex
@param min
@param max
*/
public static void initializeArray(int[][] arr, int startIndex, int stopIndex, int min, int max) {
boolean inputOk =
(arr != null) &&
(0 <= startIndex) &&
(startIndex <= stopIndex) &&
(stopIndex <= arr.length - 1)
;
if (inputOk) {
for (int[] element : arr) {
initializeArray(element, min, max);
}
}
}
/**
DONE Initialisiert
alle Elemente des Arrays arr
mit Zufallswerten aus dem Interval
[min,
max]
.
@param arr
@param startIndex
@param stopIndex
@param min
@param max
*/
public static void initializeArray(int[] arr, int min, int max) {
initializeArray(arr, 0, arr.length - 1, min, max);
}
/**
DONE Initialisiert
die Elemente des Arrays arr
von startIndex
bis stopIndex
mit Zufallswerten aus dem Interval
[min,
max]
.
@param arr
@param startIndex
@param stopIndex
@param min
@param max
*/
public static void initializeArray(int[] arr, int startIndex, int stopIndex, int min, int max) {
boolean inputOk =
(arr != null) &&
(0 <= startIndex) &&
(startIndex <= stopIndex) &&
(stopIndex <= arr.length - 1)
;
if (inputOk) {
ExtendedRandom randomNum = new ExtendedRandom();
for (int i = startIndex; i <= stopIndex; i++) {
arr[i] = randomNum.nextInt(min, max);
}
} else {
throw new IllegalArgumentException();
}
}
/**
TODO
Schreibt das Array arr auf die Konsole.
Die Gestaltung der Ausgabe einzelner "Array-Zeilen" ist
in #{@link ArrayUtility#printArray(int[])} beschrieben.
Die Trennzeichenkette für die Abgrenzung der eintzelnen "Array-Zeilen" voneinander ist
eine Leerzeile ("\n").
@param arr
*/
public static void printArray(int[][] arr) {
int lengthOfLongestIntegerPart = getLengthOfLongestIntegerPart(arr);
for (int i = 0; i < arr.length; i++) {
printArray(arr[i], "%" + (lengthOfLongestIntegerPart + 1) + "d");
System.out.print("\n");
}
}
/**
DONE Ermittelt die Länge des längsten Elements und
gibt sie zurück.
@param arr
@return die Länge des längsten Elements
*/
public static int getLengthOfLongestIntegerPart(int[][] arr) {
int longestIntegerPart = 1;
for (int[] i : arr) {
for (int j : i) {
if ((j + "").length() > longestIntegerPart) {
longestIntegerPart = (j + "").length();
}
}
}
return longestIntegerPart;
}
/**
DONE
Schreibt das Array arr auf die Konsole.
Die Gestaltung der Ausgabe kann über den Input-Parameter format angepasst werden.
Der String format ist beschrieben in [url="../util/Formatter.html#syntax"]Format string syntax[/url]
@param arr
@param format
@see java.io.PrintStream#printf(String, Object...)
*/
public static void printArray(int[] arr, String format) {
for (int element : arr) {
System.out.printf(format, element);
}
}
}