符号表的需要:
对一个java类完成解析之后,可以根据这个类的名称(全限定名)快速访问其相关数据。
大概来说,符号表第一要存储那些符号,第二要能快速检索符号。
哈希表:
为了快速检索,符号表一般是基于哈希表(Hash table)实现的。
hash表的主要行为有:
插入
查找
删除(一个或全部)
重新hash(增大表的容量)
枚举
一个hash表的实现应该有默认行为,默认行为适合大多数的应用场合。例如,hash表的容量可以自动扩展,当hash表里面的元素(名值对)的数量增长到一定程度时。
默认行为应该是可选的。用户可以不选择默认方式,而是自行控制(hash表的容量是否固定? 什么时候增长容量,增长为多大?)
实现一个通用的hash表:
希望支持key为各种类型,包括基本类型和对象类型,Hash函数以什么形式提供?