我想用Java创建一个地图,所以我想HashMap
。但是现在,我想克服散列引入的开销。基本上有一些对象可以在很短的时间内为地图保存一个键 - 但其中很多都是,并经常轮询/替换一个值。所以我认为每次调用get()
或set()
时散列密钥的开销都很大,也可以克服。所以我想到了,用密钥保存密钥的哈希值 - 并减少开销。
在Java中,get()
和set()
是否可以使用密钥和密钥的预先计算哈希值 - 当然,从映射中获取该密钥以保持一致性以避免开销映射必须散列密钥?
答案 0 :(得分:2)
对象可以缓存其哈希码,因此当它被重复用作密钥时,可以消除散列开销。例如,java.lang.String
执行此操作。 Integer
类有效地做同样的事情。您的自定义密钥类可以遵循此模式。