1

我有一个清单

var theDataList: List<Data> // populated with some data

并复制了一份

val copy = theDataList.toMutableList()

在代码的下游,它想验证它是复制的还是原始的

两者的.hashCode()回报相同

如果只是想用Log打印出来,怎么办?

Log.d("+++", "theDataList: ${theDataList.hashCode()}, copy: ${copy.hashCode()"}) 打印出相同的数字。

Log.d("+++", "copy: ${copy}")打印出列表内容

4

2 回答 2

3

问题:

两个列表的哈希码相同,因为它基于列表中的数据,这是相同的。

解决方案:

您真正想要的是比较两个列表的引用。您可以使用 Kotlin 的引用相等运算符 ===来做到这一点。

theDataList === copy // false

没有可以依赖的 ID/散列以您想要的方式识别 JVM 上的对象。欲了解更多信息,请查看此处

于 2019-02-23T00:02:26.577 回答
2

使用===运算符比较引用是否相同(不调用equals方法)

于 2019-02-22T23:34:38.987 回答