我想问的问题是关于 kotlin 中的编程相关问题。这个问题可能看起来很糟糕,但我想不出如何处理这种情况。
val array = ArrayList<ArrayList<Int>>()
val subAnswer = ArrayList<Int>()
subAnswer.add(1)
subAnswer.add(2)
subAnswer.add(3)
array.add(subAnswer)
subAnswer.clear()
如果我打印出数组,它是空的。我期望的行为是 subAnswer 被清除但数组将包含 [[1,2,3]] 我想知道为什么。它不应该包含 [[1,2,3]] 吗?为什么清除 subAnswer 也会清除数组?以及如何解决?
我认为一个对象被复制并添加到数组中,因此添加到数组和 subAnswer 的对象不共享相同的内存地址。在这种情况下,似乎添加的对象只是 subAnswer 的引用,因此清除 subAnswer 也会影响数组。
如果我想获得预期的行为,我该怎么做?如果有关于这个问题的任何编程概念相关的博客,请告诉我。谢谢你。