hash、hashcode()、equals()
本文针对于java中的散列存储结构。
总体思想
是:先通过hash分类,缩小范围,再通过equals()进行查找。
hash
称之为哈希函数或者是散列函数,通过一类算法(但认为更像是一种思想)求得hash值,作用是把数据映射到内存中某一位置存储和访问。
内存中的hash表 哈希表用来存储访问具有相同hash值的数据内容,hash值代表了其在hash表中的位置。
常见hash函数:
hashCode()
某一对象调用此函数,返回该对象的hash值,得到其在hash表中的位置。
equals()
对具有相同hash值的对象逐一查找比较,两者为同一对象返回true,反之返回false。
注意事项
1.在重写equals()函数时通常需要重写hashCode()
2.具有同一hashcode的对象其不一定equals。
3.equals()返回值为true的对象其hashcode一定相同。