java 二维数组行列互换

代码需求:

对等行等列的二维数组进行 行列 的互换

分析过程

  • 主对角线是保持不变
  • 行列互换即角标互换:[0][1] => [1][0]
  • 循环次数:外层循环行,内层循环每一行的列

示意图

代码实现

public class ArrayReverse {

    public static void main(String[] args) {
        int arry[][] = new int[][] {{1,2,3},{4,5,6},{7,8,9}};
        reverse(arry);
        printArray(arry);
    }

    /**
     * 二维数组转置
     * @param arry
     */
    public static void reverse(int arry[][]) {
        int count = 0;//用于统计总共循环次数
        for(int i=0; i< arry.length-1; i++) {
            //列循环从:i+1开始,提高循环效率
            for(int j=i+1; j< arry[i].length; j++) {
                int temp = arry[i][j];
                arry[i][j] = arry[j][i];
                arry[j][i] = temp;
                count++;
            }
        }
        System.out.println(count);
    }

    public static void printArray(int 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();
        }
    }
}

总结

内层循环(列循环)循环的起始点 = 外层循环+1;比从j=0循环节省了循环次数,提高效率。

如有更好的算法,还望道友下发留言帮忙改进!

原文地址:https://www.cnblogs.com/hzyy/p/8663017.html

时间: 2024-08-26 14:33:25

java 二维数组行列互换的相关文章

java二维数组的常见初始化

public class Test{ public static void main(String[] args){ //第一种: //int[][] arr1 = new int[][]{{1,2}, {2, 3}, {4, 5}}; int[][] arr1 = {{1,2}, {2, 3}, {4, 5}}; System.out.println("arr1的数值:"); for(int i=0; i<3; ++i) for(int j=0; j<2; ++j) Sy

java 二维数组,三维数组 ,糊糙数组,多维数组示例代码

package org.rui.array; import java.util.Arrays; /** * 三维数组示例 * @author lenovo * */ public class ThreeDWithNew { public static void main(String[] args) { int[][][] a=new int[2][2][4]; System.out.println(Arrays.deepToString(a)); } } /** * output: * [[[

java 二维数组的行列长度

在 java 中,其实只有一维数组,而二维数组是在一维数组中嵌套实现的.比如 int[][] a = {{},{},{},{}} 要取行数和某一行的列数可以 : int rowLen = a.length; int colLen = a[0].length; 数组,长度竟然可以是0  ,奇妙 Object[] a = new Object[0]; 原文地址:https://www.cnblogs.com/heyboom/p/9571368.html

【Java】获取二维数组行列长度

二维数组int array[][] = new int[3][3]; 行长度:array.length 列长度:array[i].length 原文地址:https://www.cnblogs.com/yuange678/p/10371641.html

java二维数组的初始化及使用其长度

二维数组的初始化 1.静态初始化 int intArray[ ][ ]={{1,2},{2,3},{3,4,5}}; Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同. 2.动态初始化 1) 直接为每一维分配空间,格式如下: arrayName = new type[arrayLength1][arrayLength2]; int a[ ][ ] = new int[2][3]: 2) 从最高维开始,分别为每一维分配空间: arrayNa

java二维数组学习(转)

转自:http://blog.csdn.net/java1992/article/details/5808709,在这里谢过了 /* * java学习: * 二维数组的使用: */public class test { public static void main(String[] args) { //二维数组的声明方式: //数据类型 [][] 数组名称 = new 数据类型 [长度][长度] ; //数据类型 [][] 数组名称 = {{123},{456}} ; /* int [][]

JAVA二维数组小记

入手JAVA第二天 1 //二维数组 2 //数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];3 4 String [][] name = {{"admin","jack"},{"tom","rose"}}; 5 for(int i=0;i<2;i++){ 6 for(int j=0;j<2;j++){ 7 System.out.println(name[i][j]); 8 } 9 } i

java二维数组的定义

//定义二维数组写法1   class numthree { public static void main(String[] args) { float[][] numthree;             //定义一个float类型的2维数组 numthree=new float[5][5];       //为它分配5行5列的空间大小 numthree[0][0]=1.1f;            //通过下标索引去访问     1行1列=1.1 numthree[1][0]=1.2f;  

Java 二维数组

在 Java 中,二维数组与一维数组一样,但是不同于 C 中的二维数组: 1. 在 Java 中,二维数组可以看成是以数组为元素的数组,例如:  int a[][] = {{1,2},{3,4,5,6},{7,8,9}};  易知:a[0] 表示一维数组{1,2}:a[1] 表示一维数组{3,4,5,6}:a[2] 表示一维数组{7,8,9}. 2. Java 中多维数组的声明和初始化应该按照从高维到低维(从左到右)的顺序进行,例如: int a[][] = new int[3][]; a[0]