番石榴是否有采用自定义哈希/等于函数的 Map 实现?

2022-09-03 13:34:44

有谁知道Guava是否有与Functionaljava的HashMap等效的版本?


答案 1

据我所知,没有。

但是,您可以使用所需的 Equivalence 策略将所有键包装在 Equivalence.Wrapper 实例中:

Equivalence<K> equiv = ...
Map<Equivalence.Wrapper<K>, V> map = ...

map.put(equiv.wrap(key), value);

当然,这意味着您需要为地图中的每个条目添加一个附加对象。因此,我认为像您建议的地图实现会很好。


答案 2

我知道你没有特别要求这一点,所以这里是:
如果你想要的只是一个具有自定义等价函数,你可以通过使用采用自定义的标准来实现相同的目标。MapTreeMapComparator


推荐