Hallo ich zu fragen, wie man ein Array wickelnJava Array Wrap Around
zum Beispiel nimmt das Array unter:
|00 01 02 03 04 05 06 07|
sagen, ich wollte alles richtig bewegen, um diese zu erhalten:
|07 00 01 02 03 04 05 06|
Wie mache ich das, ohne irgendwelche Daten zu verlieren?
, um die Dinge nach rechts zu bewegen i zur Zeit diesen Code verwendet:
public void transform(IFrame frame) {
char tempImage;
for (int i = 0; i < frame.getNumRows(); i++) {
for (int j = 0; j < frame.getNumRows(); j++) {
tempImage = frame.getChar(i,j);
frame.setChar(i+1, j, tempImage);
}
im Wesentlichen, was ich der Code will in sehr grundlegenden Begriffen zu tun ist:
durch jede Zeile/Kasse column (die frame.getNumRows, da der Rahmen quadratisch ist, sind die Zeilen/Spalten gleich
erhalten Sie den char-Wert von i und j aus dem Rahmen
-mit diesem Rahmen, stellen den Rahmen char Wert von i und j i + 1 zu sein, während j gleich bleibt
-mit dem Zeichensatz werden die Bildtemperatur sein
UPDATE
ich diese Methode implementiert haben und verändert sie sich von der vorherigen geschrieben, unten ist die aktualisierte Code:
public void transform(IFrame frame) {
char constantImage;
for (int i = 0; i < frame.getNumRows(); i++) { //go through each row/column
for (int j = 0; j < frame.getNumRows(); j++) {
constantImage = frame.getChar(i, j);
TransformFrames.add(constantImage);
Collections.rotate(Arrays.asList(TransformFrames), 1);
for (Character f : TransformFrames) {
frame.setChar(i, j, f);
}
}
}
}
TransformFrames ist eine Zeichen-Array-Liste.
Durch Debugging kann ich sehen, dass die richtigen Daten der Array-Liste hinzugefügt werden, und ich hoffe, verschoben werden, aber ich bin nicht in der Lage, dies zu sehen, wie die GUI nicht aktualisiert, sobald diese Methode aufgerufen wird - irgendwelche Vorschläge warum oder wie zu reparieren ??
Dank
Während Sie dies sicherlich mit einem Array tun können, würde ich eine 'ArrayList' empfehlen. Um das alles zu "wickeln", müssen Sie nur das letzte Element entfernen und dann an den Anfang "hinzufügen". –