Как проверить, что экземпляр списка не является другим экземпляром списка? - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть список

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}") распечатывает содержимое списка

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Проблема:

Хэш-код для обоих списков одинаков, поскольку он основан на данных в списке, которые одинаковы.

Решение:

На самом деле вам нужно сравнить ссылки обоих списков.Вы можете сделать это с помощью оператора ссылочного равенства Kotlin ===.

theDataList === copy // false

Нет идентификатора / хэша, на который вы можете полагаться для идентификации объекта в JVM так, как вам нужно.Для получения дополнительной информации посмотрите здесь .

0 голосов
/ 23 февраля 2019

Используйте оператор === для сравнения одинаковых ссылок (без вызова equals метода)

...