Java 包装类和哈希代码缓存

Java 包装类和哈希代码缓存,java,Java,像Integer这样的包装类和String类一样是不可变的 字符串类缓存它们的哈希代码 包装类是否也像字符串类一样缓存其哈希代码?否,因为这不是必需的。String.hashCode在字符串长度上可能需要线性时间,但包装类都有固定时间的快速哈希代码实现。源代码是免费提供的。仅供参考:在看到以下哈希代码实现的源代码后,我发现:public int hashCode{return value;}其中value是由该整数对象表示的原始int值。-一个快速hashcode实现True for Integ

像Integer这样的包装类和String类一样是不可变的

字符串类缓存它们的哈希代码


包装类是否也像字符串类一样缓存其哈希代码?

否,因为这不是必需的。String.hashCode在字符串长度上可能需要线性时间,但包装类都有固定时间的快速哈希代码实现。

源代码是免费提供的。仅供参考:在看到以下哈希代码实现的源代码后,我发现:public int hashCode{return value;}其中value是由该整数对象表示的原始int值。-一个快速hashcode实现True for Integer等。只是查看了它们的源代码,在版本中我看到BigInteger和BigDecimal没有缓存它们的hashcode,可能应该缓存。避免将它们作为映射中的键。@user949300:避免将它们作为映射中的键-此语句是用于IntegerRapper类还是用于BigInteger和BigDecimal?@aLearner避免BigInteger和BigDecimal。整数很好。