Hashtable哈希表原理
问题1;什么叫哈希表
一种特殊的列表,列表中的每一个元素作为地址又可以拉出一条链表。
问题2:其特点是什么?
哈希表是集合的一种,其特点查找特别快,其运行复杂度为1
问题3:哈希表的运行原理是什么?
通过 hash Code() 和equals() 建立哈希表
一个数据通过 hash Code可以得到一个储存位置,通过equals在对这个位置的链表进行比对,判断是否重复。
两种方法进行数据的查找和改动
问题4:如何减少添加元素的冲突
装填因子:表中已记录数 / 哈希表的长度=0.5, java 0.75
除留取余法y = k(x) = x%11
问题5:各种数据类型如何转换成hash code ?
double : 先变成一个long ,与 无符号右移long 异或运算 得到一个整数
String :a b c= 1 X 97+2 X 98+3 X 99 ,Java采用递归的方式
`:异或运算,相同X的两者相同为0,不同为1