gpt4 book ai didi

Java:需要一个散列映射,其中提供一个函数来进行散列

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:39 24 4
gpt4 key购买 nike

我想知道一个像常规 HashMap/Hashtable 一样工作的 Map,除了它需要一个返回哈希码并执行相等性测试的函数,而不是让 HashMap 使用 Object.hashCode/equals。

我不能使用 TreeMap,因为对象没有实现 Comparable,并且没有稳定的方法来处理不相等对象的情况。不能使用 System.identityHashCode,因为不相等的对象可能会发生冲突。

理想情况下,如果 Map 以类似的方式采用函数,可以向 TreeMap 提供自定义比较器,而不是让 TreeMap 将参数转换为 Comparable,那就太好了。

解决这个问题的唯一方法是包装每个键并让包装器执行自定义散列/等于,但肯定有更好的方法。

最佳答案

您是否考虑过对要缓存的对象进行简单包装?

class Wrapper {
YourObject object;

public boolean equals(Object someOther) {
...
}
public int hashCode() {
}
}

关于Java:需要一个散列映射,其中提供一个函数来进行散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5453226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com