浮动作为地图中的关键

Shr*_*ari 5 java

鉴于对的集合{Price, Quantity},我需要以相同的价格汇总所有数量.实现它的最简单方法是什么?

一个肮脏的,将使用Hashmap密钥实现解决方案,价格和价值是聚合数量.但是,据我所知,Float这不是一个安全的关键Hashmap.所以这个解决方案很容易出错.

什么是解决这个问题的推荐替代方案?

Tho*_*hom 8

您可以使用BigDecimal作为键.它将是哈希码安全的.

您必须初始化值,以便它们具有相同的比例,例如:

BigDecimal key = new BigDecimal(Double.toString(price)).setScale(2);
Run Code Online (Sandbox Code Playgroud)