无法通过键获取 Map<BigDecimal, String> 的值

Mal*_*ppa 1 java jsf hashmap bigdecimal

我有一张像

Map<BigDecimal, String> functions = new HashMap<BigDecimal, String>();
Run Code Online (Sandbox Code Playgroud)

当我尝试从 JSF 页面访问 map 的值时,它什么也不显示。我检查了地图的大小,它返回一个数字,它似乎不是空的。这是 JSF 页面代码

Map<BigDecimal, String> functions = new HashMap<BigDecimal, String>();
Run Code Online (Sandbox Code Playgroud)

这是怎么引起的,我该如何解决?

cmo*_*ris 5

如果两个 BigDecimal 的比例不相等,即使它们表示相同的数值,它们也不相等。这就是为什么他们可能不会制作好的 Map 键。

对于表示具有不同比例的相同值的两个 BigDecimal,compareTo() 将返回 0,但 equals() 将返回 false。