符号表与哈希表

时间:2022-06-21 18:27:00

符号表的需要:

 对一个java类完成解析之后,可以根据这个类的名称(全限定名)快速访问其相关数据。

大概来说,符号表第一要存储那些符号,第二要能快速检索符号。

 

哈希表:

为了快速检索,符号表一般是基于哈希表(Hash table)实现的。

hash表的主要行为有:

    插入

    查找

    删除(一个或全部)

    重新hash(增大表的容量)

    枚举

一个hash表的实现应该有默认行为,默认行为适合大多数的应用场合。例如,hash表的容量可以自动扩展,当hash表里面的元素(名值对)的数量增长到一定程度时。

默认行为应该是可选的。用户可以不选择默认方式,而是自行控制(hash表的容量是否固定? 什么时候增长容量,增长为多大?)

 

实现一个通用的hash表:

希望支持key为各种类型,包括基本类型和对象类型,Hash函数以什么形式提供?