Lua设计与实现

文章字数:215

String实现

思路

使用Hash方式分配字符串,根据Hash值获取对应桶,与其存在的元素比对,若都不相同,则在桶中新增元素

需要判断的时候根据Hash值判断

❓是否需要再判断桶中所有元素

源码

比对桶中元素时,先对比字符串长度,不同的则认为肯定不相同。

最新的实现根据LUAI_MAXSHORTLEN = 40判断长短字符串,对于短字符串计算Hash并使用桶机制进行对比,对于长字符串通过随机种子来分配Hash

❓长字符串的Hash冲突如何解决

该内容采用 CC BY-NC-SA 4.0许可协议。如果对您有帮助或存在意见建议,欢迎在下方评论交流。
本页面浏览次数 加载中...
本页面访客数 加载中...

加载中...