在Java中反转一行
我必须从数组中反转一行 用户输入行和列,然后输入数字来填充数组(我将在下面给出一个示例) 然后我需要获取输入的数据并将其反转,然后再次填充数组 例如: 3 3(用户输入行和列) 1 2 3(用户输入用适当数量的元素填充数组) 3 2 1 2 1 3 需要: 2 1 3 3 2 1 1 2 3 我现在拥有的代码只是很多漫无目的的猜测(以及谷歌和这里的一些类似问题),现在我只能把它换成 1 2 3 3 2 1 1 2 3 我要实现这一目标的代码是:在Java中反转一行,java,arrays,Java,Arrays,我必须从数组中反转一行 用户输入行和列,然后输入数字来填充数组(我将在下面给出一个示例) 然后我需要获取输入的数据并将其反转,然后再次填充数组 例如: 3 3(用户输入行和列) 1 2 3(用户输入用适当数量的元素填充数组) 3 2 1 2 1 3 需要: 2 1 3 3 2 1 1 2 3 我现在拥有的代码只是很多漫无目的的猜测(以及谷歌和这里的一些类似问题),现在我只能把它换成 1 2 3 3 2 1 1 2 3 我要实现这一目标的代码是: public static void rev
public static void reverseRows(int[][] inTwoDArray)
{
for (int row = inTwoDArray.length-1; row >= 0; row--)
{
for (int col = inTwoDArray[0].length-1; col >= 0; col--)
{
inTwoDArray[row][col] = inTwoDArray[inTwoDArray.length-1-row][col];
}
}
printArray(inTwoDArray);
}
非常感谢您的帮助,谢谢 您需要将要交换的值存储在临时变量中, 此外,不需要逐个元素交换行元素
public static void reverseRows(int[][] inTwoDArray){
int lastIndex = inTwoDArray.length-1;
for (int row = 0; row < inTwoDArray.length/2; row++){
int[] temp = inTwoDArray[row];
inTwoDArray[row] = inTwoDArray[lastIndex - row];
inTwoDArray[lastIndex - row] = temp;
}
printArray(inTwoDArray);
}
publicstaticvoidreverserows(int[][]inTwoDArray){
int lastIndex=inTwoDArray.length-1;
对于(int row=0;row
您需要将要交换的值存储在临时变量中,
此外,不需要逐个元素交换行元素
public static void reverseRows(int[][] inTwoDArray){
int lastIndex = inTwoDArray.length-1;
for (int row = 0; row < inTwoDArray.length/2; row++){
int[] temp = inTwoDArray[row];
inTwoDArray[row] = inTwoDArray[lastIndex - row];
inTwoDArray[lastIndex - row] = temp;
}
printArray(inTwoDArray);
}
publicstaticvoidreverserows(int[][]inTwoDArray){
int lastIndex=inTwoDArray.length-1;
对于(int row=0;row
公共类反向播放{
公共静态void main(字符串[]args){
int[]arr={{1,2,3},{3,2,1},{2,1,3};
反向旋转(arr);
}
公共静态void reverseRows(int[][]inTwoDArray){
List tmp=Arrays.asList(inTwoDArray);
反托收(tmp);
inTwoDArray=tmp.toArray(inTwoDArray);
对于(int[]外部:inTwoDArray){
for(int内部:外部){
系统输出打印(内部+“”);
}
System.out.println();
}
}
}
公共类反向播放{
公共静态void main(字符串[]args){
int[]arr={{1,2,3},{3,2,1},{2,1,3};
反向旋转(arr);
}
公共静态void reverseRows(int[][]inTwoDArray){
List tmp=Arrays.asList(inTwoDArray);
反托收(tmp);
inTwoDArray=tmp.toArray(inTwoDArray);
对于(int[]外部:inTwoDArray){
for(int内部:外部){
系统输出打印(内部+“”);
}
System.out.println();
}
}
}
公共静态int[][]动画行(int数组[][]){
int temp[][]=new int[array.length][array[0.length];
int j;
对于(int i=0;i
公共静态int[][]动画行(int数组[][]){
int temp[][]=new int[array.length][array[0.length];
int j;
对于(int i=0;i
太棒了,非常感谢!我被整个嵌套for循环卡住了,我甚至没有想到这一点。你有没有可能教我如何对列做同样的操作?如果只是在wodarray[0].length-1等中,它是否会几乎相同?太棒了,非常感谢!我被整个嵌套for循环卡住了,我甚至没有想到这一点。你有没有可能教我如何对列做同样的操作?如果只是在wodarray[0].length-1等中,它是否会几乎相同?另一个答案正是我想要的,不过这也很好。谢谢另一个答案正是我想要的,不过这也很棒。谢谢我为列添加了一个。我为列添加了一个。
public static int[][] fliprows(int array[][]) {
int temp[][] = new int[array.length][array[0].length];
int j;
for (int i = 0; i < array.length; ++i) {
j = array.length - 1 - i;
temp[i] = array[j];
}
return temp;
}
public static int[][] flipcolumns(int array[][]) {
int temp[][] = new int[array.length][array[0].length];
for (int i = 0; i < array.length; ++i) {
for (int j = 0; j < array[i].length; ++j) {
temp[i][j] = array[i][array[i].length - j - 1];
}
}
return temp;
}
public static void main(String[] args) {
int array[][] = {{1, 2, 3}, {3, 2, 1}, {2, 1, 3}};
array = fliprows(array);
for (int i = 0; i < array.length; ++i) {
for (int j = 0; j < array[i].length; ++j)
System.out.print(array[i][j]);
System.out.println();
}
}