Size: a a a

Kotlin Community

2020 August 14

X

X in Kotlin Community
Iaroslav Orlov
так нельзя использовать хешкод как уникальный id
теперь я это понял:)
источник

BP

Bogdan Panchenko in Kotlin Community
X
у меня хранение в том конкретно месте сделано в виде:
val something: LinkedHashMap<Int, DataClass> = LinkedHashMap()

где ключем является hashCode
ССЗБ
источник

BP

Bogdan Panchenko in Kotlin Community
X
у меня хранение в том конкретно месте сделано в виде:
val something: LinkedHashMap<Int, DataClass> = LinkedHashMap()

где ключем является hashCode
Ключ легко меняется на строки и проблемы нет 😉
источник

ПГ

Павло Гриник... in Kotlin Community
Iaroslav Orlov
так нельзя использовать хешкод как уникальный id
нет
источник

BP

Bogdan Panchenko in Kotlin Community
X
теперь я это понял:)
Это уровень @java_start
источник

IO

Iaroslav Orlov in Kotlin Community
почему нет? вы сами только что упоминали, что состояний объекта может быть больше, чем 2^32
источник

ПГ

Павло Гриник... in Kotlin Community
Iaroslav Orlov
почему нет? вы сами только что упоминали, что состояний объекта может быть больше, чем 2^32
под "нет" я подтвердил ваше утверждение)
источник

ПГ

Павло Гриник... in Kotlin Community
а, простите, я думал єто вопрос
потерялся
источник

RI

Ruslan Ibragimov in Kotlin Community
Более того, правильно написанное приложение будет худо-бедно работать даже с одинаковым хэшкодом для всех объектов. Есть специальный ключик для JVM дажe: -XX:hashCode=2
источник

X

X in Kotlin Community
Bogdan Panchenko
Ключ легко меняется на строки и проблемы нет 😉
есть, потому как эти строки делаются не из одной, а из нескольких. То есть есть не something, а something + another + different. И это место вызывается много раз в секунду, так что строки соединять дело неблагодарное, проще по хэшкоду или как-то иначе
источник

BP

Bogdan Panchenko in Kotlin Community
X
есть, потому как эти строки делаются не из одной, а из нескольких. То есть есть не something, а something + another + different. И это место вызывается много раз в секунду, так что строки соединять дело неблагодарное, проще по хэшкоду или как-то иначе
Возможно стоить переделать логику
источник

BP

Bogdan Panchenko in Kotlin Community
Также хеширрвать вычисления
источник

BP

Bogdan Panchenko in Kotlin Community
Но использовать хеш как ид - это как играть в русскую рулетку
источник

X

X in Kotlin Community
Bogdan Panchenko
Также хеширрвать вычисления
я получаю несколько раз в секунды тысячи объектов с одинаковыми ключами, но разными данными и потом сопоставляю по ключам с кэшэм и в нем обновляю данные. Так что тут только способ с хэшкодом видится мне эффективным. Но с учетом того, что мне теперь придется делать toUpperCase кажлый раз, это уже создание новой строки и вся оптимизация бессмысленна.
источник

BP

Bogdan Panchenko in Kotlin Community
X
я получаю несколько раз в секунды тысячи объектов с одинаковыми ключами, но разными данными и потом сопоставляю по ключам с кэшэм и в нем обновляю данные. Так что тут только способ с хэшкодом видится мне эффективным. Но с учетом того, что мне теперь придется делать toUpperCase кажлый раз, это уже создание новой строки и вся оптимизация бессмысленна.
Умер кейс вас не спасет, я уже упоминал Шипилева
источник

X

X in Kotlin Community
Bogdan Panchenko
Умер кейс вас не спасет, я уже упоминал Шипилева
как гуглить шепелева? Их много в поиске
источник

BP

Bogdan Panchenko in Kotlin Community
X
как гуглить шепелева? Их много в поиске
С приставкой java
источник

X

X in Kotlin Community
Bogdan Panchenko
С приставкой java
ну так у него куча видосов, мне конкретный советуешь посмотреть или все?
источник

BP

Bogdan Panchenko in Kotlin Community
X
ну так у него куча видосов, мне конкретный советуешь посмотреть или все?
Конечно все 😄😊 не помню где было про хешкод, ну по факту там полином, можно просто загуглить как считается хешкод в стринг
источник

BP

Bogdan Panchenko in Kotlin Community
X
я получаю несколько раз в секунды тысячи объектов с одинаковыми ключами, но разными данными и потом сопоставляю по ключам с кэшэм и в нем обновляю данные. Так что тут только способ с хэшкодом видится мне эффективным. Но с учетом того, что мне теперь придется делать toUpperCase кажлый раз, это уже создание новой строки и вся оптимизация бессмысленна.
Ты просто не решил проблемы, а переложил на потом, завтра приедут стринги где и апперкейс будет давать коллизию
источник