-4

I have two arrays. But when I change second - first change too. I tried .clone() .copyOf() but it didn't work for me.

object MatrixObject {
 var table: Array<Array<Int>>? = null

 fun randOf(n: Int) {
    table= Array(n, { Array(n, { Random().nextInt(100 - 0) + 0 }) })
 }

 var tableF: Array<Array<Int>>? = null
    get() {
        if (field==null)
          factorization()
        return field
    }

 fun factorization() {
        tableF = table!! 
        ...     //here I change elements of tableF
  }


}

I tried

 for(row in 0 until table!!.size)
   tableF!![row] = Arrays.copyOf(table!![row], table!![row].size)

and

 for(row in 0 until table!!.size)
   tableF!![row] = table!![row].clone() // and copyOf()

but it still doesn't work.

1 Answers1

0

I found the solution.I initialized the array.

        tableF= Array(table!!.size, { Array(table!!.size, {0}) })
        for(row in 0 until table!!.size)
            tableF!![row] = table!![row].clone()