Java Anfänger Übung: Array Elemente um 1 nach rechts verschieben

11/29/2017 18:16 sonti#1
Hiho, sitz für die Uni grad an einer Java Anfängerübung, leider war ich nicht da, und komm auf keinen Ansatz. Würde mich über jede Form der Hilfe freuen ^^ Gerne auch nur Ansätze oder Anregungen

Ziel ist es, eine Funktion zu schreiben, die die Elemente eines übergebenen int Arrays um 1 nach rechts verschiebt. Das letzte Array Element rutscht dann auf die 0. (z.B: int[]a={0,1,2,3,4} ---> a={4,0,1,2,3}
Steh leider grad voll auf dem Schlauch. Normalerweiße grübel ich und hab dann zumindest nen Ansatz. Ist bestimmt nicht mega kompliziert :rolleyes:

Vielen Dank im Vorraus!
11/29/2017 18:23 Menan#2
Hier mal ein Ansatz (die gesamte Lösung liefere ich dir hier mit Absicht nicht).

1. neues Array erstellen
2. letzten Eintrag des ursprünglichen Arrays auf Index 0 des neuen Arrays
3. Einmal durch das restliche ursprüngliche Array iterieren und die Werte entsprechend in dem neuen Array setzen.
12/01/2017 11:59 tomberlin01#3
Du kannst dir die Größe des Arrays besorgen mit .length
Vielleicht gibt dir das auch nochmal eine denk Hilfe.
12/01/2017 15:36 Mikesch01#4
Hi. Google mal nach "Java Array Shift". Da gibt es einige Ansätze ;)
12/04/2017 21:56 sonti#5
Erstmal danke für eure Tipps ^.^Hab mir nochmal das ganze Skript zu Arrays angeguckt,, und mit ein paar Tagen abstand war das ganze irgendwie garnicht mehr so kompliziert. Hab das nicht mit 2 arrays, sondern von hinten statt von vorne gemacht, und den index[0] einfach am anfang gespeichert :) Falls das hier irgendjemand über Suchemaschinen finden sollte, hier die Funktion:


Code:
static void shiftArray(int[] arr)
{
      int letzte = array[array.length-1];
      for( int i=array.length-2;i>=0;i--)
                array[i+1] = array[i];

       array[0]=letzte;
       System.out.println(array[0]" "+array[1]+" "+array[2]+" "+array[3]);
}
12/18/2017 09:28 World Of Bots#6
Ist zwar schon zwei Wochen alt. Aber so kann ich das nicht stehen lassen :D

Fehler:
  1. Falsche Syntax - Oben arr in array umbenennen
  2. Nach array[0] fehlt ein +
  3. Die Ausgabe Funktion gibt nur die ersten 4 Zahlen im Array aus. Besser ist
    Code:
    System.out.println(Arrays.toString(array));

Verbesserte Funktion:
Code:
static void shiftArray(int[] array) 
{
	int letzte = array.length-1;
	for(int i=array.length-2; i>=0; i--)
		array[i+1] = array[i];

	array[0]=letzte;
	System.out.println(Arrays.toString(array));
}