首页 > 解决方案 > 如何验证 List 的实例不是另一个 List 实例?

问题描述

我有一个清单

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}")打印出列表内容

标签: kotlinhash-code-uniqueness

解决方案


问题:

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

解决方案:

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

theDataList === copy // false

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


推荐阅读