我想了解一个类似于常规HashMap/Hashtable的地图,但它需要接受一个返回哈希码并执行相等性测试函数,而不是让HashMap使用Object.hashCode/equals。
我不能使用TreeMap,因为对象没有实现Comparable,也没有稳定的处理不相等对象的方法。 我们不能使用System.identityHashCode,因为有可能存在不相等对象的冲突。
理想情况下,如果地图能够像我们可以向TreeMap提供自定义比较器一样,接受一个函数,那将是非常好的,而不是让TreeMap将参数强制转换为Comparable。
唯一的解决办法是包装每个键并使包装器进行自定义哈希/等于操作,但肯定有更好的方法。
我不能使用TreeMap,因为对象没有实现Comparable,也没有稳定的处理不相等对象的方法。 我们不能使用System.identityHashCode,因为有可能存在不相等对象的冲突。
理想情况下,如果地图能够像我们可以向TreeMap提供自定义比较器一样,接受一个函数,那将是非常好的,而不是让TreeMap将参数强制转换为Comparable。
唯一的解决办法是包装每个键并使包装器进行自定义哈希/等于操作,但肯定有更好的方法。