Nav*_*Ali 0 java string hashmap key-value bucket
String s1 ="abc";
String s2 = new String("abc");
当我们比较两者时
S1 S2 ==; 它返回false
当我们将它与s1.hashCode()== s2.hashCode进行比较时,它返回true
我知道(==)检查引用id的.它在上面的比较中返回true,因为上面的hashCode被保存到同一个桶里?请给我解释
Bri*_*new 7
不要忘记你的哈希码是原始整数,并且使用比较原语==将比较它们的值,而不是它们的引用(因为原语没有引用)
==
因此,具有相同内容的两个字符串将产生相同的哈希码,并且比较通过==是完全有效的.
只有将对象放入散列集合(例如a HashSet)时,存储桶的概念才有效.哈希码的值决定了对象进入哪个桶.不存储哈希码本身.
HashSet
归档时间:
10 年,11 月 前
查看次数:
60 次
最近记录: