对象如何排序? 字符串如何排序?
排序的方法有很多,比如冒泡 , 选择排序 ,快速排序 ,计数排序 桶排序等等。(可参考https://visualgo.net/zh/sorting 了解)
众所周知数字非常方便排序,只需要比较大小即可。此处我们就可以把字符串,对象转变为数字然后再进行排序。接下来我们介绍一个方法叫hash算法。
hashcode
(hashcode是通过hash函数得来的,即就是通过某一种算法得到的,hashcode就是在hash表中有对应的位置。)
每个对象都有hashcode,对象的hashcode怎么得来的呢?
HashCode的存在主要是为了查找的快捷性,hashcode来代表对象就是在hash表中的位置。
hash值计算方式如下:
equals方法和hashcode的关系:
如果两个对象equals相等,那么这两个对象的HashCode一定也相同。如果两个对象的HashCode相同,不代表两个对象就相同。
所以,我们在重写了equals方法后,尽量也重写了hashcode方法,通过一定的算法,使他们在equals相等时,也会有相同的hashcode值。