Era*_*ran 11
例如,考虑Long类的两个对象.由于hashCode返回a int,并且long(和Long)类型的范围大于int,这意味着必须有两个Long具有相同的对象,hashCode即使它们彼此不相等.
答案很简单:hashCode()意外地可以为两个完全不同的物体产生相同的数字.
哈希码是一个数字值,用于在基于哈希的集合中插入和标识对象。
它是一个固定的大小值,因此它对于每个现有对象都不是唯一的,因此有时会遭受碰撞。基本上,hashCode()可以为两个不同的对象产生相同的值。
例:
String first = "wh";
String second = "xI";
System.out.println(first.equals(second));
System.out.println(first.hashCode() + " " + second.hashCode());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |