Java 如何使二维阵列向右旋转90度?

Java 如何使二维阵列向右旋转90度?,java,arrays,rotation,2d,Java,Arrays,Rotation,2d,所以我有一个2D数组,它应该向右旋转90度,但它却向左旋转。真的不明白为什么 公共类代码16{ public static void main (String args[]){ int [] [] oldarray = new int [3][3]; int value = 1; for (int i = 0; i < 3; i++){ for (int j =0; j<3; j++){ oldarray[i][j]

所以我有一个2D数组,它应该向右旋转90度,但它却向左旋转。真的不明白为什么

公共类代码16{

public static void main (String args[]){
    int [] [] oldarray = new int [3][3];

    int value = 1;

    for (int i = 0; i < 3; i++){
        for (int j =0; j<3; j++){
            oldarray[i][j] = value;
            value++;
        }
    }


    for (int i = 0; i < 3; i++){
        for (int j =0; j<3; j++){
            System.out.print(oldarray[i][j] + "\t");
        }
        System.out.println("");
    }


    oldarray = rotate(oldarray, 3);


    System.out.println("");
    for (int i = 0; i < 3; i++){
        for (int j =0; j<3; j++){
            System.out.print(oldarray[i][j] + "\t");
        }
        System.out.println("");
    }

}

public static int [][] rotate (int [][] passedIn, int n){

    int [][] newarray = new int [n][n];

    for (int i = 0; i < n; i++){
        for (int j =0; j<n; j++){
            newarray[i][j] = passedIn [j][n-1-i];
        }
    }   

    return newarray;
}
publicstaticvoidmain(字符串参数[]){
int[]oldarray=新int[3][3];
int值=1;
对于(int i=0;i<3;i++){
对于(int j=0;j
而不是

newarray[i][j] = passedIn [j][n-1-i];

另外,在使用Java8时,您可以考虑使用<代码>流>代码>打印您的数组:

Stream.of(oldarray).forEach(e -> System.out.println(Arrays.toString(e)));

预期的结果是什么?在
rotate()
方法中尝试
newarray[i][j]=passedIn[j][i]
。成功了…谢谢,伙计..不知道为什么我没有看到这个..我逐字写出了每一个element@user3476554非常欢迎您(也欢迎您加入SO;)。如果您对答案感到满意,您可以将其标记为“已接受”。
Stream.of(oldarray).forEach(e -> System.out.println(Arrays.toString(e)));