首先介绍一下什么叫做hash碰撞/冲突,就是有一个算法叫做hashCode,通过java自定义的运算,然后得到一个int大小的值,这个值就是hash值,当两个不同的对象的hash值相同的时候,就被称为hash碰撞/冲突。
java中哪些地方用到了呢?只要是带hash的就用到了,比如HashSet, LinkedHashSet, HashMap,LinkedHashMap其实前两个的底层就是后两个
。
如果了解了HashMap的底层,会发现有个叫做加载因子的东西,其实他的一个作用就是防止hash碰撞的产生。
具体的在另一篇回归复习中有分析,感兴趣的可以看一下,如果觉得不对,也欢迎提出,共同进步。
Set、可变参数、Collections工具类、Map集合
上面的是凑字数,CSDN不给过,嘻嘻
这个例子是老师在讲课的时候,举的两个例子。如果后面发现还有后续会慢慢的补充。
// hash碰撞
String s = "通话";
String s4 = "重地";
System.out.println(s.hashCode()); // 1179395
System.out.println(s4.hashCode()); // 1179395