如何反转2D数组的线条, 例如:
[~][@][@][@]
[~][~][@][~]
[~][~][@][~]
[~][~][~][~]
对此:
[~][~][~][~]
[~][~][@][~]
[~][~][@][~]
[~][@][@][@]
我试图找到但是我找不到这种任务的算法,请帮助。
答案 0 :(得分:2)
假设您的2D数组定义如下:
int[][] matrix = new int[nRows][nCols];
你可以试试这个:
for (int i = 0, k = nRows - 1; i < nRows / 2; i++, k--) {
int[] temp = matrix[k];
matrix[k] = matrix[i];
matrix[i] = temp;
}
它将在行的中途迭代并将第一个与最终的交换,第二个与倒数第二个交换。等等。
答案 1 :(得分:1)
试试下面的内容,
List<List<String>> newListOfList = new ArrayList<>();
for(int i=listOfList.size()-1; i>=0;i--) { //listOfList is the original list
newListOfList.add(listOfList.get(i));
}