hashset的原理
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
hashset的原理
HashSet 是 Java 中的一个集合容器,它可以用来存储任意类型的 unique 值,使用的是散列表(hash table)的数据结构,它不保留顺序,而且允许 null 值。
HashSet 的实现原理是采用散列表(也称为散列或 hash 表)作为内部存储结构,散列表是由称为散列函数(hash function)的数学函数将所有集合中的键映射到一个整数的一种经典的数据结构,然后再将该整数作为数组的下标,以把键存储到内存空间中。
在 HashSet 中,每个值都关联有一个唯一的哈希码(hash code),它由散列函数产生。
当使用添加、删除、查找和替换方法时,都需要使用哈希码,而不需要遍历集合中的每个元素,只需要检查哈希码就能检索元素,这便大大减少了操作时间,提高了性能。
在 HashSet 中,哈希码既存储着值,又起到链接作用,它指向下一个值,而这些值存储在固定的存储区域中,这样所有值就可以通过哈希码联系起来,形成一个单独的序列。
另外,HashSet 还使用了散列函数(hash functions)来将每个值映射到一个整数,这个数不但可以用来存储值,还可以用来快速地查找到相应的值。
这就是 HashSet 算法的关键。
总之,HashSet 将键映射到固定的存储空间,这样不但可以处理大量数据快速地存储和访问,而且也可以避免重复值的出现。