2015-11-17 45 views
0

我可如何扭转一个二维数组的线, 例如像:如何反转2D阵列的线条?

[~][@][@][@] 
[~][~][@][~] 
[~][~][@][~] 
[~][~][~][~] 

要这样:

[~][~][~][~] 
[~][~][@][~] 
[~][~][@][~] 
[~][@][@][@] 

我试图找到,但我无法找到这种算法任务,请帮助。

+0

你能不能改变你的榜样,而不是使用数字字母请。既然有重复的笨蛋,它会令我困惑。 – StackFlowed

+0

@StackFlowed我改变了我的问题 – LiziPizi

+0

无所谓可以使用不同的元素,如1,2,3和4有两次,这使得难以理解。 – StackFlowed

回答

1

假设你的二维数组的定义是这样的:

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; 
} 

它将通过行中途迭代和交换先用最终,第二个用倒数第二等等。

+0

我改变了我的问题 – LiziPizi

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)); 
     }