我正在嘗試使用方法將數組中的元素左移n(某些隨機數)。難點在於將數組起始處的元素與末尾的元素交換。這是我的代碼到目前爲止。在n數組中循環移位元素n
其他陣列問題與此不同。
public class Shifty {
private int[] datas = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
public Shifty() {
datas = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
}
public int shift(int position) {
int tmp = 0;
int[] tmp1 = new int[12];
for (int i = 0; i <= 12; i++) {
if (i < position) {
tmp1[12-position] = this.datas[i];
} else {
this.datas[i] = this.datas[i+1];
}
for (int j = 12-position; j <= 12; j++){
this.datas[j] = tmp1[j];
}
}
return position;
}
public void display() {
System.out.println(Arrays.toString(this.datas));
System.out.println();
}
}
例如看到這個:http://stackoverflow.com/questions/18659792/circular-arraylist-extending-arra- sylist和http://stackoverflow.com/questions/7266042/java-ring-buffer –
你的'tmp1'太小 - 應該是int [13],但int [datqs.length]會更穩健。在你的代碼中使用'12'也是一樣。 – Jan
哦,不好意思打錯了。糟糕的手機鍵盤。 – Jan