好,做我的研究和沒有發現任何東西。在它的頭上翻轉陣列?
在Java中,一個二維數組通常會打印下來,然後離開(或然後離開向下取決於你如何字的for循環)。但是我怎樣才能拍到同樣的數組,然後將它左打印出來呢?我不想翻轉陣列本身,因爲我打算添加到它(所以說,而不是有18行,有idk,30遊戲中)。
所以我的問題是:如何從底部打印在Java中的二維數組,上漲?
好,做我的研究和沒有發現任何東西。在它的頭上翻轉陣列?
在Java中,一個二維數組通常會打印下來,然後離開(或然後離開向下取決於你如何字的for循環)。但是我怎樣才能拍到同樣的數組,然後將它左打印出來呢?我不想翻轉陣列本身,因爲我打算添加到它(所以說,而不是有18行,有idk,30遊戲中)。
所以我的問題是:如何從底部打印在Java中的二維數組,上漲?
開始從終端:
for (int i = arr.length - 1; i >=0; --i) {
for (int j = arr[i].length -1; j >= 0; --j) {
System.out.println(arr[i][j]);
}
}
如果你的意思是 「向下和向左」 是這樣的:
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
再 「自下而上」 將是這樣的:
for (int i = arr.length-1; i >= 0; i--) {
for (int j = arr[i].length-1; j >= 0; j--) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
...反向指標在for循環...
或者,如果您使用新的快速枚舉for循環,切換到索引。
或者,通過array.length指數 - 我 - 1
雖然其他的答案更容易和更簡潔,如果你這樣做的時候,你可以寫交替會遍歷以相反的順序排列的迭代器:
public class ReverseArrayIterator<T> implements Iterator<T> {
private final T[] myArray;
private int pointer;
public ReverseArrayIterator(T... myArray) {
this.myArray = myArray;
pointer = myArray.length;
}
@Override
public boolean hasNext() {
return pointer > 0;
}
@Override
public T next() {
if (!hasNext())
throw new NoSuchElementException();
return myArray[--pointer];
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}