我有一个列表
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}")
打印出列表内容
答案 0 :(得分:3)
问题:
两个列表的哈希码相同,因为它基于列表中的数据,这是相同的。
解决方案:
您真正想要的是比较两个列表的引用。您可以使用Kotlin的referential equality operator ===
来做到这一点。
theDataList === copy // false
您没有可依赖的ID /哈希来在JVM上标识对象。有关更多信息,请查看here。
答案 1 :(得分:2)
使用===
运算符比较引用是否相同(不调用equals
方法)