我的任务是建立一个银行管理系统.客户帐户通过哈希表保存在银行内,因此对于每个客户,由个人识别号码表示,将有一个帐户的arraylist(一个客户最多可以有2个帐户 – 一个储蓄帐户和一个支出帐户).
我要做的是手动处理可能发生的冲突.我怎样才能做到这一点?我有什么方法可以覆盖?我必须提到HashTables不是我的一杯茶,因为我很难在C中与他们一起工作.
附: – 我计划使用HashMap,因为我理解更容易使用.
编辑 – 手动碰撞处理是必需的.
编辑2 – 这是一项要求,因为实验室助理希望我们了解哈希表的工作原理.经过更多的挖掘,我想我需要从Hashtable中覆盖“equals”方法,所以没有HashMap.这是正确的方法吗? (不需要新的ADT)
解决方法:
标准哈希表实现自动执行冲突处理,您无法控制它.但是,你必须要做的是为用作键的对象实现hashCode()和equals() – 但在String / Number的情况下,这也是由标准库完成的.
因此,如果任务真的是您处理冲突 – 那么您必须构建自己的Map实现.