Arrays.setAll(…)/parallelSetAll(…)

Neben der Möglichkeit ein Feld mit festen Werten zu füllen, sind in Java 8 noch ein paar Methoden setAll(…)/parallelSetAll(…) hinzugekommen. Die Methoden durchlaufen ein gegebenes Feld und rufen eine bestimmte Methode für jeden Index auf, die zur Initialisierung verwendet wird.

Beispiel

Fülle ein double-Feld mit Zufallszahlen:

double[] randoms = new double[10];

Arrays.setAll( randoms, v -> Math.random() );

System.out.println( Arrays.toString( randoms ));

Das Beispiel nutzt eine spezielle Syntax, die sogenannten Lambda-Ausdrücke, um die Funktion zu beschreiben.

class java.util.Arrays

  • static void setAll(double[] array, IntToDoubleFunction generator)
  • static void setAll(int[] array, IntUnaryOperator generator)
  • static void setAll(long[] array, IntToLongFunction generator)
  • static <T> void setAll(T[] array, IntFunction<? extends T> generator)
  • static void parallelSetAll(double[] array, IntToDoubleFunction generator)
  • static void parallelSetAll(int[] array, IntUnaryOperator generator)
  • static void parallelSetAll(long[] array, IntToLongFunction generator)
  • static <T> void parallelSetAll(T[] array, IntFunction<? extends T> generator)
    Läuft ein gegebenes Feld komplett ab und übergibt dabei dem generator Schritt für Schritt den Index. Der Generator bildet den Index auf einen Wert ab, der wiederum zur Feldinitialisierung genutzt wird.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert