Werte in 2D-Array mit anderem 2D-Array überschreiben

fischebr

Mitglied
Hallo liebe Java-Gemeinde,
kann ich eigentlich Werte in einem 2D-Array mit einem anderen 2D-Array überschreiben?
Ich habe zwei Arrays:
Array A = nnnnn
nnnnn
nnnnn
Array B = ooo
ooo

und möchte jetzt folgende Ausgabe erzeugen:

Array A = nooon
nooon
nnnnn

Wie ich die Werte einzeln überscheiben kann, ist mir klar. Ich habe aber ein größeres Array, indem ich ziemlich viele kleinere Arrays hineinschreiben möchte.
Vielen Dank!
 
Man erkennt da garkein Muster. Soll das erste Zeichen der A-Arrays immer bestehen bleiben? Weil das erste n in deinem Beispiel ja immer bleibt.

Wenn du ein komplettes Array ersetzen würdest, wäre das kein Problem, du könntest ja sagen:
A[index] = neuesArray;

Aber du scheinst ja nur einzelne Werte zu überschreiben. Dein Beispiel würde ich jetzt so machen:
Java:
char[][] a = new char[][]{{'n', 'n', 'n', 'n', 'n'}, {'n', 'n', 'n', 'n', 'n'}, {'n', 'n', 'n', 'n', 'n'}};
char[][] b = new char[][]{{'o', 'o', 'o'}, {'o', 'o', 'o'}};

for (int i = 0; i < b.length; i++) {
    System.arraycopy(b[i], 0, a[i], 1, b[i].length);
}

System.out.println(Arrays.deepToString(a));

Wenn du viele kleine Arrays in ein großes Array schreiben willst, dann kannst du die kleines Arrays auch mit System.arraycopy an die richtige Stelle im großen Array schreiben.
 
Hallo Tarrew,
ich habe ein 10 x 10 großes Array, welches ein leeres Feld eines Spieles darstellt. Ein Spieler soll sich jetzt das Spielfeld dynamisch zusammen setzen können. Dazu legt er verschieden große Platten auf dieses Feld, die ich auch als Array programmiert habe. Da das ganze an einen Server übertragen werden soll, muss das Spielfeld kodiert werden. Das 10 x 10 Feld ist jetzt initialisiert mit n wie null:

n n n n n n n n n n
n n n n n n n n n n
n n n n n n n n n n
n n n n n n n n n n
n n n n n n n n n n
n n n n n n n n n n
n n n n n n n n n n
n n n n n n n n n n
n n n n n n n n n n
n n n n n n n n n n

Die Platten haben verschiedene Kodierungen. Es gibt sie in den Größen 2x3, 22, 1x3, und 1x2. Wenn der Spieler alle Platten auf das Feld gelegt hat, könnte das Spielfeld z. B. so aussehen:

n n n k f f n n n n
n n o k f f p p n n
n n o k b b b g g n
n c c c b b b g g n
n c c c l d d d n n
h h i i l d d d m n
h h i i l q j j m n
n n e e e q j j m n
n n e e e r r n n n
n n n s s s n n n n

Es kann aber auch anders aussehen, je nachdem wie die Platten gelegt werden.

Ich bastel mir gerade eine Methode, die dann immer die Werte für die Platten in dem 10x10 Feld überschreiben soll und hatte überlegt, ob man an Position xy im großen Feld das Array einer Platte beginnend mit Plate[0][0] hineinschreiben könnte. Den Wert [0][0] hat jede Platte, egal wie groß sie ist. Dann bräuchte ich nur die Größe der Platte und den Buchstaben der Plattenkodierung als Parameter übergeben. Die Position muss der Listener nach dem entsprechenden Mausklick liefern.

Habe ich das einigermaßen verständlich darstellen können?
Im Internet habe ich nicht so recht was dazu finden können, weiß aber auch nicht, ob ich mit den richtigen Schlagworten gesucht habe.
 

Zurück
Oben