Ну расскажите, как искать по дереву, если элементы не comparable
Всё в джава доке написано - можете почитать
а это интересный вопрос, очень интересный
да, все так (сижу читаю щас как араз)
Tie-breaking utility for ordering insertions when equal hashCodes and non-comparable.
ну так там внутри и делается comare (правда сначала по имени класса, а потом по identify hash code)
ага, тоже уже изучил)
С identity hash code есть такая проблема, что он может быть каким угодно и при этом разным у одинаковых объектов. Как искать потом в этом дереве?
все так, только у одного и того же объекта он всегда одинаковый и если ты сравниваешь 2 идентити хеш кода у 2х разных объектов - результат всегда одинаковый в hash map такой код static int tieBreakOrder(Object a, Object b) { int d; if (a == null || b == null || (d = a.getClass().getName(). compareTo(b.getClass().getName())) == 0) d = (System.identityHashCode(a) <= System.identityHashCode(b) ? -1 : 1); return d; }
Да, но какой в этом толк, если потом это дерево приходится перебирать полностью, потому что на identity hash code нельзя полагаться при сравнении на равенство двух объектов?
Обсуждают сегодня