hm ja so halb, zum beispiel 1,3,5 ist ein array und 6,2,1 ist einer oderWeisst du, was ein zweidimensionales Array in Java ist? Es ist ein Array aus Arrays. Das zweidimensionale Array `workArray` ist also bei dir ein Array, in welchem Zeilen stehen. Das heisst, der erste Index des Arrays definiert den Index einer Zeile.
Und nun musst du nur noch über das Array über alle Zeilen rüberrennen und diese umschreiben.
ok und wie gehe ich jetzt am besten voran, mir fällt es immer so schwer draufzukommen aber wenn ich dann das ergebnis sehe finde ich es logisch:/Genau. Das Array {1,3,5} ist in dem einen Beispiel ja die erste Zeile innerhalb deines zweidimensionalen Arrays.
ok leider nicht wirklich geschafft:/Ja, genau. Du musst ja jeweils immer ein Array lesen und das dann an einer anderen Position wieder schreiben.
Tja :/
Wenn du mal konkrete Fragen stellen würdest, dann könnte man auch helfen. Ausser "tja" kann man da gerade nichts antworten. Wo hapert es genau? Was hast du bis jetzt genau probiert und wo sind die Fehler?
Du musst halt schon die meiste Arbeit selbst hineinstecken.
Und was genau hast du probiert? Was waren denn bisher genau deine Gedankengänge, die du probiert hast? Ich habe dir ja mit Arrayzugriff/-index Operator schonmal einen Begriff genannt. Hast du den mal online nachgeschlagen? Hast du überhaupt irgendwas mal von selbst versucht, nachzuschlagen/zu recherchieren? Wieso lassen sich Leute eigentlich immer alles aus der Nase ziehen? Basically: Du musst jetzt einfach mal beweisen, dass du selbst etwas probiert hast, z.B. mit einem (so schlecht er auch sei) Codeschnipsel von dir und einer Erklärung, was du glaubst, das der tun soll.hm ja ich habe probiert mich damit auseinander zu setzten und probiert das zu machen was du geschrieben hast aber halt nichts geschafft, ich überleg wie ich es schaffe den array wert zu nehmen und ihn eine stelle weiter zu geben
Und was genau hast du probiert? Was waren denn bisher genau deine Gedankengänge, die du probiert hast? Ich habe dir ja mit Arrayzugriff/-index Operator schonmal einen Begriff genannt. Hast du den mal online nachgeschlagen? Hast du überhaupt irgendwas mal von selbst versucht, nachzuschlagen/zu recherchieren? Wieso lassen sich Leute eigentlich immer alles aus der Nase ziehen? Basically: Du musst jetzt einfach mal beweisen, dass du selbst etwas probiert hast, z.B. mit einem (so schlecht er auch sei) Codeschnipsel von dir und einer Erklärung, was du glaubst, das der tun soll.
Bist du sicher, dass du überhaupt schon etwas probiert/recherchiert/nachgedacht hast, und dir nicht einfach nur eine fertige Lösung hier von jemandem erschleichen möchtest?![]()
private static void shiftLinesInArray(int[][] workArray) {
int[] narray = workArray[workArray.length-1];
System.arraycopy(workArray, 0, workArray, 1, workArray.length - 1);
}
int[] arr1 = { 1, 2, 3 }; // ein Array, das drei int-Werte enthält
int[] arr2 = arr1; // { 1, 2, 3 }
int[][] arr3 = { { 1, 2, 3 }, { 4, 5, 6 } }; // ein Array, das zwei Arrays mit je drei int-Werten enthält
int[] arr4 = arr3[0]; // { 1, 2, 3 }
int[] arr5 = arr3[1]; // { 4, 5, 6 }
arr3[1] = arr2; // arr3 = { { 1, 2, 3 }, { 1, 2, 3 } }
arr3[0] = arr5; // arr3 = { { 4, 5, 6 }, { 1, 2, 3 } }
oh stimmt es klappt nur das erste und der zweite versuch nicht vielen dankAlso ich sehe mehrere Probleme in deinem Code. Ich denke mal, dass Du es nur getestet hast mit eine Konstellation, bei der es durch Zufall funktioniert.
Lies noch einmal die Aufgabenstellung durch:
- Hast Du es mal für beide Beispiele durchgetestet? (Ich fürchte, du hast nur das erste Beispiel getestet,...)
- Hast Du die Aufgabenstellung wirklich erfüllt? Oder steht da, dass Du etwas machen sollst, das Du nicht gemacht hast?
Das nur als kleiner Hinweis am Rande.
Das war natürlich Quatsch. Hatte die Aufgabenstellung nicht mehr richtig im Kopf. So ist es richtig:Das könnte z. B. so beginnen:
Nimm das zweite Element und kopiere es an die Stelle des ersten Elements.
Nimm das dritte Element und kopiere es an die Stelle des zweiten Elements.
also ich habe einen neuen array quasi erstellt aber darf ihn ja nur umbauen so?Also ich sehe mehrere Probleme in deinem Code. Ich denke mal, dass Du es nur getestet hast mit eine Konstellation, bei der es durch Zufall funktioniert.
Lies noch einmal die Aufgabenstellung durch:
- Hast Du es mal für beide Beispiele durchgetestet? (Ich fürchte, du hast nur das erste Beispiel getestet,...)
- Hast Du die Aufgabenstellung wirklich erfüllt? Oder steht da, dass Du etwas machen sollst, das Du nicht gemacht hast?
Das nur als kleiner Hinweis am Rande.
ja genau habe mir ja auch überlegt quasi, dass ich den ersten array neheme und ich als zweiten abspeicher aber halt ohne neuen array und nur überarbeiten fällt mir nichts einJa, du sollst nur umbauen. In #19 habe ich ja versucht, Dir ein visuelles Beispiel zu geben. Wie gehst Du denn vor?
Du hast eine Kommode mit x Schubladen.
Die oberste Schublade soll zu der untersten werden und alle anderen sollen eins hoch Rücken.
Nun beschreibe mir, wie ich das hin kriege. Und das ohne, dass ich mir eine zweite Kommode anschaffen muss!
Das steht doch alles in #18fällt mir nichts ein
Es geht um die Ausgabe auf Kommandozeile. In #17 scheint ein vernünftiger Ansatz zu sein:erstellen wir doch neue arrays
for (int i = 0; i < workArray.length ; i++) {
int shiftedI = (i+1) % workArray.length;
Nö, nur arr1 und arr3 werden neu erstellt, alle anderen werden einander zugewiesen. Wenn du das verstanden hast, dann sollte die Aufgabe ganz leicht sein.in dem Fall erstellen wir doch neue arrayys und das darf ich ja nicht in dieser Aufgabe
int[] arr1 = { 1, 2, 3 }; // erstellt ein Array und weist die Referenz darauf der Variablen zu
int[] arr2 = arr1; // weist die Referenz auf arr1 der Variablen arr2 zu
// die beiden Variablen arr1 und arr2 zeigen jetzt auf das selbe Array
arr1 = { 4, 5, 6 }; // erstellt ein neues Array und weist die Referenz darauf der Variablen zu. Die ursprüngliche Referenz geht verloren.
// Die Referenz auf das ursprüngliche Array ist aber noch in arr2 gespeichert.
System.out.println(Arrays.toString(arr1)); // { 4, 5, 6 }
System.out.println(Arrays.toString(arr2)); // { 1, 2, 3 }
Also darum geht es gar nicht. Es geht darum die Inhalte des Arrays zu vertauschen.Es geht um die Ausgabe auf Kommandozeile.
int[] temp = array[0];
array[0] = array[1];