Если объект имеет не согласующиеся реализации compareTo() и equals(), т.е. если первая может вернуть 0 для объектов, для которых equals вернет false, использовать такие объекты в TreeSet нельзя (т.е. вобщем-то можно, но чревато неожиданным поведением). Дело в том, что TreeSet, на что обращено внимание в документации, для определения эквивалентности объектов при добавлении использует не equals(), а compareTo(), поэтому в набор нельзя будет добавить 2 объекта, которые неидентичны с точки зрения equals(), но возвращают 0 при сравнении с помощью compareTo().
barbitoff programmer`s blog
Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий