String实现
思路
使用Hash
方式分配字符串,根据Hash
值获取对应桶,与其存在的元素比对,若都不相同,则在桶中新增元素
需要判断的时候根据Hash
值判断
❓是否需要再判断桶中所有元素
源码
比对桶中元素时,先对比字符串长度,不同的则认为肯定不相同。
最新的实现根据LUAI_MAXSHORTLEN = 40
判断长短字符串,对于短字符串计算Hash
并使用桶机制进行对比,对于长字符串通过随机种子来分配Hash
。
❓长字符串的Hash
冲突如何解决
使用Hash
方式分配字符串,根据Hash
值获取对应桶,与其存在的元素比对,若都不相同,则在桶中新增元素
需要判断的时候根据Hash
值判断
❓是否需要再判断桶中所有元素
比对桶中元素时,先对比字符串长度,不同的则认为肯定不相同。
最新的实现根据LUAI_MAXSHORTLEN = 40
判断长短字符串,对于短字符串计算Hash
并使用桶机制进行对比,对于长字符串通过随机种子来分配Hash
。
❓长字符串的Hash
冲突如何解决
加载中...