Methoden Array horizontal spiegeln

Z

Zukami

Mitglied
Hallo zusammen,
Ich habe als Aufgabe eine Methode zu schreiben, welche ein Zweidimensionales Array horizontal spiegelt. Am Schluss müssen aber das Original sowie das gespiegelte Array auf der Console ausgegeben werden.

Folgende Strukturen sind schon vorgegeben:
char[][] inputArray = {{'1', '0', '1'}, {'1', '1', '1'}};
char[][] mirroredArray = mirrorArray(inputArray);
print2DArray(inputArray);
System.out.println("---");
print2DArray(mirroredArray);

Objektorientierte Programmierung hatten wir dabei noch nicht.
Mein Problem ist vor allem der Ausdruck char[][] mirroredArray = mirrorArray(inputArray); ich weiss nicht so wirklich was ich mit dem anfangen soll.

Mein Ansatz bisher war folgender:

public static void main( String[] arg )
{
char [][] inputArray = {{'1', '0', '1'}, {'1','1','1'}}; // Array deklariere und konstruieren
print2DArray(inputArray); //Output Array
System.out.println("---"); // Output ---
mirrorArray(inputArray); //Output horizontal gespiegeltes Array
}
// Originales Array ausgeben
public static void print2DArray(char inputArray[][])
{
for ( int zeile = 0; zeile < inputArray.length; zeile++ )
{
for ( int spalte=0; spalte < inputArray[zeile].length; spalte++ )
System.out.print( inputArray[zeile][spalte] );
System.out.println();
}
}
// das horizontal gespiegelte Array ausgeben
private static void mirrorArray(char inputArray [][]) {

for (int zeile = inputArray.length -1; zeile >=0; zeile --)
{
for (int spalte = inputArray.length; spalte >=0; spalte --)

System.out.print( inputArray[zeile][spalte] );
System.out.println();
}
}

Der Output auf der Console wäre der Richtige.
101
111
---
111
101

Das Problem ist nun nur, dass ich von der Vorgabe abweiche. Hat jemand eine Idee, wie ich meinen Code abändern muss, um der Vorgabe zu entsprechen?
Btw ich glaube ich habe Zeile und Spalte verwechselt also nicht verwirren lassen ^^
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Mein Problem ist vor allem der Ausdruck char[][] mirroredArray = mirrorArray(inputArray); ich weiss nicht so wirklich was ich mit dem anfangen soll.
Das ist nichts anderes als ein Methodenaufruf. Grundsätzlich hast du diese Methode schon, aber deine Methode braucht einen return type, nicht void. So:

Java:
private static char[][] mirrorArray(char inputArray [][]) {
 
kneitzel

kneitzel

Top Contributor
Also horizontal spiegeln wäre jetzt für mich aus 1 2 3 ein 3 2 1 zu machen. Das was du gemacht hast, wäre für mich vertikal. (Bei deinem Beispiel wäre die Spiegelung wieder das Original)

Aber unabhängig von Horizontal / Vertikal: wenn du es ausgeben kannst, dann kannst du doch bestimmt auch die Werte zuweisen.

Das Ziel Array hat welche Größe? -> ein neues Array dieser Größe erzeugen.
Dann in den Schleifen halt statt einer Ausgabe die Zuweisung machen.
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
BTW
Lass dich nicht so sehr von dem Begriff Spiegelung irritieren. Schaue dir nur das erwartete Ergebnis genau an. Es ist nichts anderes als eine umgekehrte Reihenfolge der Zeilen. Ein 2D-Array ist nichts anderes als ein einfaches Array, dessen Elemente wiederum Arrays sind. Stell dir vielleicht erst einmal vor, wie du ein einfaches Arrays aus Strings spiegeln würdest, dann tauschst du diese Strings durch Arrays aus.
 
Z

Zukami

Mitglied
Das ist nichts anderes als ein Methodenaufruf. Grundsätzlich hast du diese Methode schon, aber deine Methode braucht einen return type, nicht void. So:

Java:
private static char[][] mirrorArray(char inputArray [][]) {

Das Problem ist, wenn ich die methode folgendermassen aufrufe:
public static void main( String[] arg )
{
char [][] inputArray = {{'1', '0', '1'}, {'1','1','1'}}; // Array deklariere und konstruieren
char [][] mirroredArray = mirrorArray(inputArray);

print2DArray(inputArray); //Output Array
System.out.println("---"); // Output ---
print2DArray(mirroredArray); //Output horizontal gespiegeltes Array
}

// Originales Array ausgeben
public static void print2DArray(char inputArray[][])
{

for ( int zeile = 0; zeile < inputArray.length; zeile++ )
{
for ( int spalte=0; spalte < inputArray[zeile].length; spalte++ )
System.out.print( inputArray[zeile][spalte] );
System.out.println();
}
}
// das horizontal gespiegelte Array ausgeben
private static char [][] mirrorArray(char inputArray [][]) {

for (int zeile = inputArray.length -1; zeile >=0; zeile --)
{
for (int spalte = inputArray.length; spalte >=0; spalte --)

System.out.print( inputArray[zeile][spalte] );
System.out.println();

}
return inputArray;

}


Dann habe ich als Output auf der Console folgendes:
111
101
101
111
---
101
111

Und ich verstehe auch nicht wieso der nun so ist...
Mir ist zwar klar, dass ich mit dem system.outprintln und dem darauffolgenden return sozusagen doppelt ausgebe, ich weiss aber nicht wie ich das fixen soll...
 
Z

Zukami

Mitglied
Also horizontal spiegeln wäre jetzt für mich aus 1 2 3 ein 3 2 1 zu machen. Das was du gemacht hast, wäre für mich vertikal. (Bei deinem Beispiel wäre die Spiegelung wieder das Original)

Aber unabhängig von Horizontal / Vertikal: wenn du es ausgeben kannst, dann kannst du doch bestimmt auch die Werte zuweisen.

Das Ziel Array hat welche Größe? -> ein neues Array dieser Größe erzeugen.
Dann in den Schleifen halt statt einer Ausgabe die Zuweisung machen.
Ich sollte vielleicht noch dazufügen, dass das Array ungespiegelt so aussehen sollte:
101
111

Ziel ist dann folgender Output:
101
111
---
111
101
 
Z

Zukami

Mitglied
BTW
Lass dich nicht so sehr von dem Begriff Spiegelung irritieren. Schaue dir nur das erwartete Ergebnis genau an. Es ist nichts anderes als eine umgekehrte Reihenfolge der Zeilen. Ein 2D-Array ist nichts anderes als ein einfaches Array, dessen Elemente wiederum Arrays sind. Stell dir vielleicht erst einmal vor, wie du ein einfaches Arrays aus Strings spiegeln würdest, dann tauschst du diese Strings durch Arrays aus.

Am Anfang habe ich mich sehr von dieser Spiegelung irritieren lassen,habe danach aber versucht diese "Spiegelung" in der 2. Methode durch das ausgeben des Arrays von hinten nach vorne zu erreichen.
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Du darfst keine Ausgabe in mirrorArray machen. Du musst ein neues Array zusammenbauen.
Java:
private static char [][] mirrorArray(char inputArray [][]) {
  char[][] mirroredArray = xxx;  // xxx musst du einfügen, bei mir nur ein Platzhalter
  
  // hier baust du mirroredArray inhaltlich zusammen

  return mirroredArray;
}
 
temi

temi

Top Contributor
Du darfst in der Methode mirrorArray() nichts ausgeben. In der Methode musst du ein neues Array erstellen, welches das im Parameter übergebene Array spiegelt und anschließend returned.
 
Z

Zukami

Mitglied
Du darfst keine Ausgabe in mirrorArray machen. Du musst ein neues Array zusammenbauen.
Java:
private static char [][] mirrorArray(char inputArray [][]) {
  char[][] mirroredArray = xxx;  // xxx musst du einfügen, bei mir nur ein Platzhalter
 
  // hier baust du mirroredArray inhaltlich zusammen

  return mirroredArray;
}

kann ich um den mirreredarray inhaltlich aufzubauen diesen code unten beibehalten oder ist der unnützlich?

for (int zeile = inputArray.length -1; zeile >=0; zeile --)
{
for (int spalte = inputArray.length; spalte >=0; spalte --)
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Ja, aber das innere Array (Zeile) verändert sich doch nicht. Das kannst du so nehmen wie es kommt


Kleine Hilfestellung:
Java:
char[][] array = {{'1', '2'},{'3','4'}};
char[] ersteZeileVomArray = array[0];
 
Zuletzt bearbeitet:
Z

Zukami

Mitglied
Ja, aber das innere Array (Zeile) verändert sich doch nicht. Das kannst du so nehmen wie es kommt
private static char [][] mirrorArray(char inputArray [][]) {

char [][] mirroredArray = {{'1', '0', '1'}, {'1','1','1'}};

for (int zeile = inputArray.length -1; zeile >=0; zeile --)
{
for (int spalte = inputArray.length; spalte >=0; spalte --)


}
return mirrorArray;

}

also ich habe jetzt mal die Methode bis hierhin.
Das innere array könnte ich theoretisch weglassen. Das Problem ist jetzt aber noch dass ich ja noch einen Befehl geben muss, was nach dieser Schleife damit gemacht werden muss...
Kannst du mir das vielleicht sagen?
 
temi

temi

Top Contributor
Würdest du bitte die Code-Tags verwenden? Die drei Punkte rechts vom Smiley - Code - Java.
Java:
private static char [][] mirrorArray(char inputArray [][]) {

    char [][] mirroredArray = {{'1', '0', '1'}, {'1','1','1'}}; // dieses Array soll anfangs leer sein!

    // ab hier füllst du das neue Array mit den Daten aus inputArray
    for (int zeile = inputArray.length -1; zeile >=0; zeile --) {
        for (int spalte = inputArray.length; spalte >=0; spalte --)
    }
  
    return mirrorArray; // hier das Array "mirroredArray" zurückgeben!
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Array horizontal spiegeln Java Basics - Anfänger-Themen 2
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Initialen mit Array wiedergeben Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
G Array Werte addieren Java Basics - Anfänger-Themen 4
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
L Array Rotation Java Basics - Anfänger-Themen 4
D Ausgabe von Array Java Basics - Anfänger-Themen 2
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
P Datentypen Array und String Java Basics - Anfänger-Themen 2
Zeppi Array Java Basics - Anfänger-Themen 2
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Zeppi Jagged Array Java Basics - Anfänger-Themen 6
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
L Array mit Wörtern gestalten Java Basics - Anfänger-Themen 2
Gaudimagspam Nummern generieren Array Java Basics - Anfänger-Themen 4
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Array füllen Java Basics - Anfänger-Themen 11
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
A Speicherbereich von Array nicht zusammenhängend? Java Basics - Anfänger-Themen 8
S Java Array Probleme Java Basics - Anfänger-Themen 3
S Java Array Problem... Java Basics - Anfänger-Themen 2
C 2dimensionales array, Lagerverwaltung Java Basics - Anfänger-Themen 64
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
parrot Array Übung Java Basics - Anfänger-Themen 25
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
parrot Array Java Basics - Anfänger-Themen 4
L 2 Dimensional Array werte überschreiben Java Basics - Anfänger-Themen 1
A char array wird überschrieben Java Basics - Anfänger-Themen 6
L Zufälliges 2d array befüllen Java Basics - Anfänger-Themen 27
L x und y Koordinaten in ein Array schreiben Java Basics - Anfänger-Themen 7
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
P Enums in Array abspeichern Java Basics - Anfänger-Themen 4
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
J zweidimensionales Array Java Basics - Anfänger-Themen 1
A Array Elemente extrahieren ! Java Basics - Anfänger-Themen 4
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
A Array aufaddieren ! Java Basics - Anfänger-Themen 5
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J Elemente in einem 2D-Array summieren Java Basics - Anfänger-Themen 6
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
J Array differenzieren Java Basics - Anfänger-Themen 2
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
J Methoden set Methode array Java Basics - Anfänger-Themen 2
I Array übernimmt immer den letzten Input. Java Basics - Anfänger-Themen 14
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
Kirby.exe Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
F Integerzahl als Array halten Java Basics - Anfänger-Themen 4
1 Array nimmt falschen Wert auf! Java Basics - Anfänger-Themen 2
J Neue Werte in ein Array hinzugeben Java Basics - Anfänger-Themen 8
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
C 2-Dimensionales Array in Eindimensionales Array Java Basics - Anfänger-Themen 1
H Frage zum 2d Array Java Basics - Anfänger-Themen 1
L Array sortieren Java Basics - Anfänger-Themen 4
Kirby.exe Fehlende Int Werte aus Array mit streams finden Java Basics - Anfänger-Themen 19
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
M Bubblesort ohne Array Java Basics - Anfänger-Themen 30
B Array Redundanz Java Basics - Anfänger-Themen 1
Kirby.exe Array Replacing Java Basics - Anfänger-Themen 3
J Array vertauschen ohne ein neues anzulegen?! Java Basics - Anfänger-Themen 10
P Arraylist zu einem Array bringen mit Verschachtelung Java Basics - Anfänger-Themen 11
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Anzeige


Oben