Java 2D Array für ein Grid erstellen ?

Diskutiere Java 2D Array für ein Grid erstellen ? im Allgemeine Java-Themen Bereich.
M

Mx1co

Mein Ziel ist es ein Grid für eine Grafische Benutzeroberfläche zu erstellen. Wie man dies macht, soll aber gar nicht teil meiner Frage sein. Ich möchte ein 10 x 10 Grid erstellen, wofür ich ein 2D Array nutzen möchte.

Java:
int[][] grid = new Int[10][10];
Meine Tabelle soll eigentlich so aussehen (sorry für die Formatierung aber ihr könnt euch sicherlich denken wie sie aussehen sollte):
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100

Nun ja, sobald ich es mit einer doppelten for schleife versucht habe kam immer eine Nullpointer. Daher versuchte ich es mit einem IntStream :

Java:
public static void gridArray(int rows, int columns) {

        int[][] board = IntStream.range(0, rows) // rows = 10, columns = 10
                .mapToObj(i -> IntStream.range(0, columns)
                        .map(j -> 1 + (i + (rows + 1) * j))
                        .toArray())
                .toArray(int[][]::new);
        System.out.println("FINISHED!");
    }
Jedoch sieht dann mein Grid wie folgt aus :
1 12 23 34 45 56 67 78 89 100
2 13 24 35 46 57 68 79 90 101
3 14 25 36 47 58 69 80 91 102
4 15 26 37 48 59 70 81 92 103
5 16 27 38 49 60 71 82 93 104
6 17 28 39 50 61 72 83 94 105
7 18 29 40 51 62 73 84 95 106
8 19 30 41 52 63 74 85 96 107
9 20 31 42 53 64 75 86 97 108
10 21 32 43 54 65 76 87 98 109

Nun meine Bitte / Frage an euch : Kann mir jemand zeigen, wo bei meiner methode mit dem IntStream der Fehler ist oder mir gar direkt eine neue Methode vorschlagen ? Danke im Vorraus!
 
I

insert2020

@Mx1co So etwas macht man nicht mit Streams...
Java:
	public static int[][] gridArray(int rows, int cols) {
		int[][] grid = new int[rows][cols];
		for (int i = 0; i < rows * cols; i++) {
			grid[i / cols][i % cols] = i + 1;
		}
		return grid;
	}

	public static void main(String[] args) {
		Arrays.stream(gridArray(10, 10)).forEach(a -> 
		System.out.println(Arrays.stream(a).mapToObj(b -> String.format("%3d", b)).collect(Collectors.joining(", "))));
	}
Code:
  1,   2,   3,   4,   5,   6,   7,   8,   9,  10
 11,  12,  13,  14,  15,  16,  17,  18,  19,  20
 21,  22,  23,  24,  25,  26,  27,  28,  29,  30
 31,  32,  33,  34,  35,  36,  37,  38,  39,  40
 41,  42,  43,  44,  45,  46,  47,  48,  49,  50
 51,  52,  53,  54,  55,  56,  57,  58,  59,  60
 61,  62,  63,  64,  65,  66,  67,  68,  69,  70
 71,  72,  73,  74,  75,  76,  77,  78,  79,  80
 81,  82,  83,  84,  85,  86,  87,  88,  89,  90
 91,  92,  93,  94,  95,  96,  97,  98,  99, 100
 
Thema: 

Java 2D Array für ein Grid erstellen ?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben