uthred Geschrieben 4. Februar 2013 Geschrieben 4. Februar 2013 public class Main { public static void main(String args[]) { int[] cube={ 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4, 5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6 }; int[] zwischenspeicher={ 1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4, 5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6 }; //erstes Mal Überschreiben cube[0]=zwischenspeicher[2]; cube[1]=zwischenspeicher[5]; cube[2]=zwischenspeicher[8]; cube[3]=zwischenspeicher[1]; cube[4]=zwischenspeicher[4]; cube[5]=zwischenspeicher[7]; cube[6]=zwischenspeicher[0]; cube[7]=zwischenspeicher[3]; cube[8]=zwischenspeicher[6]; cube[9]=zwischenspeicher[38]; cube[10]=zwischenspeicher[41]; System.out.println(zwischenspeicher[11]); //Ausgabe: 2 cube[11]=zwischenspeicher[44]; System.out.println(zwischenspeicher[11]); //Ausgabe: 5 cube[33]=zwischenspeicher[45]; cube[34]=zwischenspeicher[48]; cube[35]=zwischenspeicher[51]; cube[38]=zwischenspeicher[35]; cube[41]=zwischenspeicher[34]; cube[44]=zwischenspeicher[33]; cube[45]=zwischenspeicher[11]; cube[48]=zwischenspeicher[10]; cube[51]=zwischenspeicher[9]; //Zweites Mal überschreiben cube[0]=zwischenspeicher[6]; cube[1]=zwischenspeicher[3]; cube[2]=zwischenspeicher[0]; cube[3]=zwischenspeicher[7]; cube[4]=zwischenspeicher[4]; cube[5]=zwischenspeicher[1]; cube[6]=zwischenspeicher[8]; cube[7]=zwischenspeicher[5]; cube[8]=zwischenspeicher[2]; cube[9]=zwischenspeicher[51]; cube[10]=zwischenspeicher[48]; cube[11]=zwischenspeicher[45]; cube[33]=zwischenspeicher[44]; cube[34]=zwischenspeicher[41]; cube[35]=zwischenspeicher[38]; cube[38]=zwischenspeicher[9]; cube[41]=zwischenspeicher[10]; cube[44]=zwischenspeicher[11]; cube[45]=zwischenspeicher[33]; cube[48]=zwischenspeicher[34]; cube[51]=zwischenspeicher[35]; } } Also ich habe zwei gleiche int-Arrays mit je 54 Stellen. Bei diesen will ich 25 Stellen Überschreiben und dannach wieder zurück schreiben (Ursprünglich 2 Methoden in einer seperaten Klasse, der übersichtshalber aber in die Main-Methode geschrieben) Nun habe ich dieses Problem System.out.println(zwischenspeicher[11]); //Ausgabe: 2 cube[11]=zwischenspeicher[44]; System.out.println(zwischenspeicher[11]); //Ausgabe: 5 Und ich weiß nicht wieso es auftaucht. Am Ende sollte eig wieder die Ursprungsarray vorhanden sein, aber dies kommt raus: 111111111 555222222 333333333 444444666 555555555 666666666 Nun die Preisfrage was mache ich falsch? Zitieren
Klotzkopp Geschrieben 4. Februar 2013 Geschrieben 4. Februar 2013 Dein Code gibt bei mir 2 2[/code]aus. Zitieren
uthred Geschrieben 4. Februar 2013 Autor Geschrieben 4. Februar 2013 Ok, jetzt bin ich vollkommen verwirrt Was passiert wenn du dir den Würfel vor und nach dem Überschreiben ausgeben lässt? int i=0; for (int element : cube){ System.out.print(element); i++; if(i==9||i==18||i==27||i==36||i==45||i==54) { System.out.println(" "); } } Zitieren
Klotzkopp Geschrieben 4. Februar 2013 Geschrieben 4. Februar 2013 Ok, jetzt bin ich vollkommen verwirrtHast du deinen Beispielcode denn mal bei dir ausprobiert? Was passiert wenn du dir den Würfel vor und nach dem Überschreiben ausgeben lässt? 111111111 222222222 333333333 444444444 555555555 666666666 2 2 111111111 555222222 333333333 444444666 554554554 266266266 111111111 666222222 333333333 444444555 552552552 466466466[/CODE] Zitieren
uthred Geschrieben 4. Februar 2013 Autor Geschrieben 4. Februar 2013 111111111 222222222 333333333 444444444 555555555 666666666 2 2 111111111 555222222 333333333 444444666 556556556 566566566 111111111 555222222 333333333 444444666 555555555 666666666 Ja ich habe den Code Ausprobiert und das oben stehende rausbekommen... Zitieren
Klotzkopp Geschrieben 4. Februar 2013 Geschrieben 4. Februar 2013 Ja ich habe den Code Ausprobiert und das oben stehende rausbekommen... Also reproduziert dein Beispielcode zumindest das 2-5-Problem nicht mehr. Was immer du also geändert hast, den Fehler hast du mitgeändert. Da sich die restliche Ausgabe ja nun bei uns unterscheidet: Was ist denn die erwartete Ausgabe? Zitieren
uthred Geschrieben 4. Februar 2013 Autor Geschrieben 4. Februar 2013 111111111 222222222 333333333 444444444 555555555 666666666 Eigentlich wieder der Ursprung Zitieren
Klotzkopp Geschrieben 4. Februar 2013 Geschrieben 4. Februar 2013 Eigentlich wieder der UrsprungDas kann nicht sein, da hast du einen Logikfehler drin. Beispiel: cube[10]=zwischenspeicher[48]; In cube[10] steht zu Beginn eine 2, in zwischenspeicher[48] steht die ganze Zeit über eine 6. Diese Anweisung schreibt eine 6 in cube[10], da kannst du nicht erwarten, dass da eine 2 erscheint. Zitieren
uthred Geschrieben 4. Februar 2013 Autor Geschrieben 4. Februar 2013 :upps Darauf hätte ich auch selbst kommen können, bzw. müssen Danke sehr Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.