Java reverse-array-Methode
Ich versuche eine Methode erstellt ein array und gibt anschließend das array in umgekehrter. Der code, den ich schrieb zurück, das array in umgekehrter Richtung, aber die ersten beiden Werte sind 0. Wer weiß, was ich falsch gemacht habe?
public static int[] reverse(int[] x)
{
int []d = new int[x.length];
for (int i = 0; i < x.length/2; i++) //for loop, that checks each array slot
{
d[i] = x[i];
x[i] = x[x.length-1-i]; //creates a new array that is in reverse order of the original
x[x.length-1-i] = d[i];
}
return d; //returns the new reversed array
}
Sollten Sie vielleicht überdenken Sie Ihre Lösung und versuchen, Ihre Algorithmus auf Papier, bevor Sie code schreiben..
Beachten Sie, dass Sie sich direkt schriftlich in
da brauchen Sie nicht zu iteriert über das gesamte array für den Zugriff auf jedes element. Beachten Sie, wie OP geht für die array-Daten:
Es sieht für mich aus wie x ist Umgekehrt, ich sehe nicht ein, warum d würde zurückgegeben werden.
Beachten Sie, dass Sie sich direkt schriftlich in
x
Wann sollte man es verwenden, um Daten zu Lesen nur.da brauchen Sie nicht zu iteriert über das gesamte array für den Zugriff auf jedes element. Beachten Sie, wie OP geht für die array-Daten:
x[i]
und x[x.length - 1 - i]
.Es sieht für mich aus wie x ist Umgekehrt, ich sehe nicht ein, warum d würde zurückgegeben werden.
InformationsquelleAutor Diz | 2014-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuordnung von Werten aus einer nicht initialisierte array
d
zux
- das ist, wo die Nullen (Standardwert für einint
in Java) aus.IIUC, Sie mischen zwei Rückwärtsfahren Strategien.
Wenn Sie erstellen ein neues array, brauchen Sie nicht zu laufen mehr als die Hälfte des ursprünglichen Arrays, sondern über alle:
Alternativ, wenn Sie möchten, reverse array im Ort, brauchen Sie nicht ein temp-array nur eine einzige variable (in den meisten - es gibt auch Möglichkeiten, zu wechseln, zwei
int
s, ohne eine zusätzliche variable, aber das ist eine andere Frage):InformationsquelleAutor Mureinik
Hier ist ein kurzer Weg, es zu tun.
InformationsquelleAutor Mohamad
Seine einfache Fehler; Sie sind coping Umgekehrt Daten in x; und die Rückkehr d. Wenn Sie zurückkehren wird, x ist, erhalten Sie die komplette verehrt Daten.
So dass Sie letztlich geschaffen haben, verehrt array innerhalb von x und nicht in d.... Wenn Sie return x Sie bekam Ihre Antwort. Und d ist nur die Hälfte gebacken, so dass Sie get default Wert 0 für remainign Hälfte array. 🙂
InformationsquelleAutor user3657302