查找(一):简单符号表

1.1 符号表

符号表主要运用于键值对(key-value)的操作。用例能够将一个键值对插入符号表,并希望在以后能够从符号表中按照键(key)找到相应的值(value)。
符号表从某种意义上与数组类似,数组通过下标来寻找值,符号表通过key来寻找值。
符号表的规则也与数组类似:
1. 每个key只对应一个value;
2. 当向表中存入的key与已有的key冲突时,新的value会覆盖旧的value;
3. key不能为null
4. value不能为null

1.1.1 一个简单符号表API
方法名称功能
void put(Key key, Value val)将键值对存入符号表(如果val为空,删除键key)
Value get(Key key)获取key对应的值(如果不存在,返回null)
void delete(Key key)从表中删除键key(以及其对应值)
boolean contains(Key key)表中是否存在键key
boolean isEmpty()表是否为空
int size()返回表中的键值对数量

关于Key的等价

在数组中,我们通过(==)判断整数下标的等价性,但在符号表中,Key可以是String,甚至复杂的对象。因此在判断Key的等价性时,我们要自己实现相应的等价方法,Java中的思路是根据需要重写相应类型的equals()方法。如果需要对Key进行排序,实现有序符号表,则Key需要继承Comparable。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值