Size: a a a

2020 August 04

А

Андрей in KotlinLangRu
Quantum Harmonizer
ну короче да, там будет equals
Спасибо
источник

BP

Bogdan Panchenko in KotlinLangRu
Андрей
Народ, метод contains() у коллекций ищет при помощи equals()?
скорей всего да
источник

IM

Igor Mikhailov in KotlinLangRu
у некоторых коллекций (например HashSet,  HashMap) сперва сравнивает hashCode(), и только если hashCode совпали вызывает equals(). Причём значение запоминается при добавлении, если потом hashCode() поменялся то может не найти даже сам объект
class BadHashCode {
   var i = 0;
   override fun hashCode() = i;
   override fun equals(other: Any?) = true
}
fun main() {
   val badHashCode = BadHashCode()
   val map = hashSetOf(badHashCode)
   badHashCode.i++;
   println(map.contains(badHashCode))//false
}
источник

_

_OM_ in KotlinLangRu
Чо?
источник

А

Андрей in KotlinLangRu
Спасибо)
источник

_

_OM_ in KotlinLangRu
Мэр по дефолту ключ по хэшу хранит, он же hashmap
источник

AE

Alexandr Emelyanov in KotlinLangRu
Igor Mikhailov
у некоторых коллекций (например HashSet,  HashMap) сперва сравнивает hashCode(), и только если hashCode совпали вызывает equals(). Причём значение запоминается при добавлении, если потом hashCode() поменялся то может не найти даже сам объект
class BadHashCode {
   var i = 0;
   override fun hashCode() = i;
   override fun equals(other: Any?) = true
}
fun main() {
   val badHashCode = BadHashCode()
   val map = hashSetOf(badHashCode)
   badHashCode.i++;
   println(map.contains(badHashCode))//false
}
Это относится к ключу, с hash set просто сайд эффект ввиду того что значение складывается как ключ hash map
источник

AE

Alexandr Emelyanov in KotlinLangRu
@igormich88 я бы почитал статьи на хабре про коллекции Java
источник

IM

Igor Mikhailov in KotlinLangRu
Alexandr Emelyanov
@igormich88 я бы почитал статьи на хабре про коллекции Java
Я отвечал Андрею про то что бывают ситуации когда коллекция ищет объект используя не только equals
источник

BP

Bogdan Panchenko in KotlinLangRu
Igor Mikhailov
у некоторых коллекций (например HashSet,  HashMap) сперва сравнивает hashCode(), и только если hashCode совпали вызывает equals(). Причём значение запоминается при добавлении, если потом hashCode() поменялся то может не найти даже сам объект
class BadHashCode {
   var i = 0;
   override fun hashCode() = i;
   override fun equals(other: Any?) = true
}
fun main() {
   val badHashCode = BadHashCode()
   val map = hashSetOf(badHashCode)
   badHashCode.i++;
   println(map.contains(badHashCode))//false
}
> сперва сравнивает hashCode(), и только если hashCode совпали вызывает equals()

в случае с HashMap не совсем верно, equals отрабатывает только когда есть колизии hashCode
источник

QH

Quantum Harmonizer in KotlinLangRu
Bogdan Panchenko
> сперва сравнивает hashCode(), и только если hashCode совпали вызывает equals()

в случае с HashMap не совсем верно, equals отрабатывает только когда есть колизии hashCode
нет, не только
источник

BP

Bogdan Panchenko in KotlinLangRu
Quantum Harmonizer
нет, не только
а еще когда ? не припомню других вариантов
источник

QH

Quantum Harmonizer in KotlinLangRu
Bogdan Panchenko
а еще когда ? не припомню других вариантов
если хэш совпадает, это же не значит, что объекты равны. Вот исходник, он у первой же ноды в корзине проверяет хэш, а за ним и equals
источник

BP

Bogdan Panchenko in KotlinLangRu
Quantum Harmonizer
если хэш совпадает, это же не значит, что объекты равны. Вот исходник, он у первой же ноды в корзине проверяет хэш, а за ним и equals
да увидел уже
источник

I

Iss in KotlinLangRu
Ребят кто умеет делать прилы с вебвью?
источник

AE

Alexandr Emelyanov in KotlinLangRu
Iss
Ребят кто умеет делать прилы с вебвью?
источник

AE

Alexandr Emelyanov in KotlinLangRu
Iss
Ребят кто умеет делать прилы с вебвью?
источник

I

Iss in KotlinLangRu
Спасибо
источник

QH

Quantum Harmonizer in KotlinLangRu
Iss
Ребят кто умеет делать прилы с вебвью?
источник

QH

Quantum Harmonizer in KotlinLangRu
нет
источник