Streams und Ausgabe - lässt sich das einfacher schreiben oder schöner schreiben?

  • Themenstarter Themenstarter Xyz1
  • Beginndatum Beginndatum
X

Xyz1

Gast
Java:
System.out.println(Arrays.toString(Arrays.stream(Arrays.stream(new double[6]).map((double d) -> ran.nextDouble()).toArray()).map((double operand) -> (int) (operand * 100) / 100.0).toArray()));

Die Ausgabe soll bitte in [ ]-Klammern stehen.
Es soll ausgegeben werden:
[ ]-Klammern,
Leerzeile,
Es soll nicht ausgegeben werden:
keine [ ]-Klammern,
alles hintereinander,
alles untereinander,

Weiß jemand bescheid?
 
Ganz spontan würde ich es zumindest soweit vereinfachen:
Java:
System.out.println(Arrays.toString(ran.doubles(6).map(operand -> (int) (operand * 100) / 100.0).toArray()));
geht aber bestimmt noch kürzer^^
 
Java:
int[] values = new int[6];
for(int i = 0; i < values.length; i++) {
   values[i] = (int) (ran.nextDouble() *100) / 100.0;
}
System.out.println(Arrays.toString(values);
 
Nun, das ist nicht unbedingt kürzer und anhand des Titels gehe ich davon aus, dass es ihm auch um die Verwendung von Streams geht, welche bei deiner Lösung fehlen^^

und du müsstest int[] durch double[] ersetzen
 
Wenns wirklich nur zum Ausgeben ist, dann könnte man doch einen String mit einem DecimalFormat bauen:
Java:
DecimalFormat format = new DecimalFormat("0.00");
System.out.println(ran.doubles(6).mapToObj(format::format).collect(Collectors.joining(", ", "[", "]")));

Ein paar Zeichen könnte man sich mit static-import sparen.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben