Примечание: следует соблюдать осторожность, если
BigDecimalобъекты используются как ключи вSortedMapили в элементах вSortedSet, так какBigDecimalестественное упорядочение несовместимо с равными.
Например, если вы создадите HashSet и добавьте new BigDecimal("1.0") и new BigDecimal("1.00") к нему, набор будет содержать два элемента (поскольку значения имеют разные шкалы, поэтому они не равны в соответствии с equals и hashCode), но если вы сделаете то же самое с TreeSet, набор будет содержать только один элемент, потому что значения сравниваются как равные при использовании compareTo.
Есть ли какая-то конкретная причина этой несогласованности?