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 arrayarr.indices
相当于0 until arr.length
- 二维数组返回类型
Array[Array[T]]