Size: a a a

2020 October 17

A

Adevald in learn.java
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Серьезно, хватит фантазировать, бери идентити. Это лучший вариант
Объектов Tag создаётся ООЧЕНЬ много, а это значит что шанс непонятных ошибок (которые ещё и постоянно сериализуются) будет весьма немаленький
источник

Д

Дегенерат in learn.java
Adevald
Как получить ссылку на объект?
В интернетах нагуглил что можно это через hashCode() делать, но там же сказали что хэш не обязательно должен быть уникальным, поэтому может случиться БЯКА.
Есть другой способ?
Хеш код никакого отношения к ссылкам не имеет
источник

A

Adevald in learn.java
Дегенерат
Хеш код никакого отношения к ссылкам не имеет
Я знаю что не имеет, но позволяет тот же экземпляр объекта получить по идее, так?
источник

K

Kitikot in learn.java
Adevald
Я знаю что не имеет, но позволяет тот же экземпляр объекта получить по идее, так?
Нет. Нет никаких гарантий. Для этого и существует equals.
У тебя есть три варианта.
1. Написать свой собственный алгоритм генерирования строки, где ты сам будешь гарантировать уникальность.
2. Использовать идентити хэш.
3. Использовать очень длинные хэши.
Последние два варианта естественно не гарантирую ничего
источник

A

Adevald in learn.java
Kitikot
Нет. Нет никаких гарантий. Для этого и существует equals.
У тебя есть три варианта.
1. Написать свой собственный алгоритм генерирования строки, где ты сам будешь гарантировать уникальность.
2. Использовать идентити хэш.
3. Использовать очень длинные хэши.
Последние два варианта естественно не гарантирую ничего
ну то есть java вообще никак не позволяет получать объекты не копируя их? Ну ладно, что уж. Буду в эту сторону думать
источник

DS

Dmitriy Shilnikov in learn.java
Adevald
Выглядит вот так. в pathStep должна быть именно уникальная ссылка на rootTag и то что будет из него получаться
Не проще UUID использовать и не мучаться?
источник

A

Adevald in learn.java
Dmitriy Shilnikov
Не проще UUID использовать и не мучаться?
Ась?
источник

A

Adevald in learn.java
Не совсем понял
источник

DS

Dmitriy Shilnikov in learn.java
Ну каждому объекту назначить свой id в виде UUID. Они уникальные, они хорошо в хэшмапе лежать могут.
источник

A

Adevald in learn.java
Я не назначаю их, уже работаю с готовым.
источник

DS

Dmitriy Shilnikov in learn.java
Adevald
Я не назначаю их, уже работаю с готовым.
Ты же их в мапе хранишь. Ключ может быть UUID, сам объект менять не надо.
источник

K

Kitikot in learn.java
Adevald
ну то есть java вообще никак не позволяет получать объекты не копируя их? Ну ладно, что уж. Буду в эту сторону думать
Если не вдаваться в подробности, как работает хэшмапа. Ты запрашиваешь объект по хэшу. Если случается коллизия (хэши совпадают) джава сравнит эти объекты по equals и отдаст тот, который будет проходить по equals.
источник

A

Adevald in learn.java
Я понимаю как работает хэшмапа, проблема в том что у меня есть путь из нескольких ключей, а хэшмапы вложены друг в друга
источник

A

Adevald in learn.java
Мне нужно несколько раз запрашивать по ключу идентификатор, они не лежал в одной хэшмапе
источник

A

Adevald in learn.java
А друг в друге
источник

A

Adevald in learn.java
Это не я делал такую реализацию
источник

Д

Дима in learn.java
источник

A

Adevald in learn.java
Здравствуйте полтора месяца опыта программирования
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
Если на какой-то странной жвм у вас внезапно идентити не будет работать, как вам нужно, то будете искать решение для этой конкретной жвм. А пока используйте идентити
источник

A

Adevald in learn.java
Да уж, решение нашёл внезапно, ответ убил..............................................................
источник