Zum Inhalt springen

Java Array neu sortieren, schlägt fehl


Empfohlene Beiträge

Geschrieben

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?

Geschrieben

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(" ");

		      }

		  }

Geschrieben
Ok, jetzt bin ich vollkommen verwirrt
Hast 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]

Geschrieben

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...

Geschrieben
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?

Geschrieben
Eigentlich wieder der Ursprung
Das 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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...