java - Java 中的哈希表手动冲突处理

标签 java hashtable collision

我的任务是做一个银行管理系统。客户账户通过使用哈希表保存在银行内部,因此对于由个人识别号表示的每个客户,将有一个账户数组列表(一个客户最多可以有 2 个账户 - 一个储蓄账户和一个消费账户).

我要做的就是手动处理可能发生的碰撞。我怎样才能做到这一点?我必须重写什么方法?我不得不提的是,哈希表不是我的菜,因为我在用 C 语言使用它们时遇到了困难。

附言- 我打算使用 HashMap,因为我知道它更容易使用。

编辑 - 手动碰撞处理是必需的。

EDIT 2 - 这是一项要求,因为实验室助理希望我们了解哈希表的工作原理。经过更多挖掘,我想我需要重写 Hashtable 的“equals”方法,所以没有 HashMap。这是正确的做法吗? (不需要新的 ADT)

最佳答案

标准哈希表实现会自动进行冲突处理,您无法控制它。然而,您必须做的是为用作键的对象实现 hashCode()equals() - 但在 String 的情况下/Number,标准库也已经完成了。 因此,如果任务真的是让您处理碰撞 - 那么您必须构建自己的 Map 实现。

关于java - Java 中的哈希表手动冲突处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10371272/

相关文章:

java - 外部文件中的系统属性?

c# - 如何获取哈希表条目的键

c - 在 Glib 1.2 中使用 g_hash_table_foreach 时从哈希表中删除项目是否安全?

algorithm - 线性探测具有不等哈希的大量键序列

c++ - 2个物体之间的子弹碰撞回调

java - 碰撞检测和 react java

JVM 关闭前 Java 轮询器线程清理

java - 覆盖 ClassNames 函数而不创建扩展 ClassName 的新类

javascript - 如何在 crafty.js 中使用多个碰撞箱区域?

java - java/swing 形式的动态字段添加