Scala-对于方阵的转置

object Demo {
    def main(args: Array[String]): Unit = {
        val arr = Array.ofDim[Int](5, 5)
        for (i <- arr.indices; j <- arr(0).indices) {
            arr(i)(j) = i * arr.length + j + 1
        }
        // 转置前
        ff(arr)
        fff(arr)
        // 转置后
        ff(arr)
    }
	// 输出矩阵
    def ff(matrix: Array[Array[Int]]): Unit = {
        for (i <- matrix.indices) {
            for (j <- matrix(0).indices) {
                print("%2d ".format(matrix(i)(j)))
            }
            println()
        }
    }
    // 转置操作
    def fff(matrix: Array[Array[Int]]): Unit = {
        for (i <- matrix.indices; j <- i + 1 until matrix(0).length) {
            val num = matrix(i)(j)
            matrix(i)(j) = matrix(j)(i)
            matrix(j)(i) = num
        }
    }
}
代码说明
  • Array.ofDim[T: ClassTag](n1: Int, n2: Int)Creates a 2-dimensional array
  • arr.indices 相当于0 until arr.length
  • 二维数组返回类型Array[Array[T]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值