如何验证列表的实例不是另一个列表实例?

时间:2019-02-22 22:29:40

标签: kotlin hash-code-uniqueness

我有一个列表

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

并复制了它

val copy = theDataList.toMutableList()
在代码的

下游,它想验证它是副本一还是原始副本

.hashCode()对于两者返回相同的结果

如果仅想使用日志进行打印,该怎么做?

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

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

2 个答案:

答案 0 :(得分:3)

问题:

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

解决方案:

您真正想要的是比较两个列表的引用。您可以使用Kotlin的referential equality operator ===来做到这一点。

theDataList === copy // false

您没有可依赖的ID /哈希来在JVM上标识对象。有关更多信息,请查看here

答案 1 :(得分:2)

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