Erweiterte for-Schleife für 2D-Array

krgewb

Top Contributor
Ich möchte ein Array mit Einsen füllen. Bisher mache ich es wie folgt:
Java:
for (int i = 0; i < meinArray.length; i++) {
    for (int j = 0; j < meinArray[i].length; j++) {
        meinArray[i][j] = 1;
    }
}

Geht das eleganter?
 
Geht das eleganter?
Klar
Java:
int[] row = IntStream.generate(() -> 1).limit(j).toArray();
int[][] arr = Stream.generate(row::clone).limit(i).toArray(int[][]::new);
//Wahlweise:
//int[][] arr = Collections.nCopies(i, row).toArray(new int[i][]);
PS: ooops vergessen zum adden
 
Zuletzt bearbeitet:
Danke! Und wie kann ich mir die Ziffern eleganter ausgeben lassen?
Java:
for (int i = 0; i < meinArray.length; i++) {
    for (int j = 0; j < meinArray[i].length; j++) {
        System.out.println(meinArray[i][j]);
    }
}
 
Was meinst du mit eleganter? Mit Streams?
Java:
Arrays.stream(arr).flatMapToInt(Arrays::stream).forEach(System.out::println);
 

Zurück
Oben