HashMap比较数字时用equals而不是==

 今天在leetcode上看到一个很有趣的discuss,一个人用map.get(a) == map.get(b)来比较hashmap中的Integer的值但是却报错。

Integer默认情况下,在-128到127区间内是有缓存的,用==来比较相等是可以返回真的。但是一旦超出这个范围,它就变成了一个引用类型,需要用equals方法来比较。

如果应用场景中计数基本不会超过127,但是代码中用了==的方式,那么不知道哪天就会产生一个不明所以的bug,细思恐极…

评论

此博客中的热门博文

leetcode笔记(word break)

HashMap思考题