ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Это был комментарий, но он стал довольно большим, извините, если он не решил вашу проблему:
Ссылки на Java
Просто чтобы уточнить, что я имею в виду, когда говорю "ссылка", поскольку на самом деле это не термин, обычно используемый в Java: Java не на самом деле использует ссылки или указатели.Он использует своего рода псевдо-ссылку, которую можно (и по умолчанию) назначить специальному экземпляру null
.В любом случае, это один из способов объяснить это.В Java эти псевдо-ссылки являются единственным способом обработки Object
.Когда я говорю «ссылка», я имею в виду эти псевдо-ссылки.
Наборы
Любая реализация Set
не позволит двум ссылкам на один и тот же объект быть включенным в нее, поскольку она использует равенство идентичности дляэтот чек.Это нарушает математическую концепцию множества.Java Set
игнорирует любую попытку добавить дублирующиеся ссылки.
Вы упомянули Map
в своем комментарии, хотя ... Не могли бы вы уточнить, какая коллекция вы ищете?И зачем вам такая проверка на равенство?Вы думаете в терминах C ++?Я постараюсь отредактировать свой ответ, чтобы быть более полезным:)
РЕДАКТИРОВАТЬ: Я думал, что это может быть вашей целью;) Таким образом, TreeSet
должен добиться цели тогда!Я не буду беспокоиться о производительности, пока не станет проблемой производительности.Простота является фантастической для удобочитаемости, обслуживания и предотвращения ошибок.Если производительность становится проблемой, в идеале вы должны профилировать свой код и оптимизировать только те области, которые доказали как проблему.