Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中反转一行_Java_Arrays - Fatal编程技术网

在Java中反转一行

在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

我必须从数组中反转一行

用户输入行和列,然后输入数字来填充数组(我将在下面给出一个示例)

然后我需要获取输入的数据并将其反转,然后再次填充数组

例如:

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