如何解决HashTable Java 实现
我必须实现一个将使用数组的哈希表,但是必须遵循指南并为每个过程创建函数。 如果有人能帮我完成这件事,我将不胜感激,因为我遇到了一些麻烦。
public class HashTable {
// public for testing purposes
public int buckets[];
public HashTable(long _a,long _c,long _m) {
}
public void insert(int key) {
}
}
到目前为止我得到了什么:
public class HashTable {
// public for testing purposes
public int buckets[];
public HashTable(long _a,long _m) {
table = new Node[];
}
public void insert(int key) {
Node<T> newNode = new Node(key);
int posPosition = calPosition(key);
}
我已经包括了我到目前为止所做的事情。也许我的做法是错误的。我理解这个概念,但到目前为止似乎无法为哈希表编写代码。感谢您的帮助,再次感谢
解决方法
- 哈希表只是一个存储桶列表或数组。
- 每个存储桶包含为该特定存储桶散列的键的所有项目。
- 这些项目是包含您要查找的键和值的条目。
将某些内容放入哈希表时,您使用键/值对。如果桶在数组中,使用键的哈希码来获取数组的正确索引。如果您使用链表,则可能需要计算位置。
然后使用另一个数组或链表在该单元格中存储 then 条目。链表更好,imo,因为可以添加它们而不必担心超出数组的大小。它们可以像常规链表一样添加到前面。
添加值时,创建条目,哈希键并找到存储桶。然后将条目添加到存储桶中。
在检索值时,对键进行散列,进入存储桶并在存储桶上进行线性搜索以找到您要查找的键的条目。然后返回该条目的值。
注意:与大多数哈希表一样,您不能有重复的键。并且任何用作键的 Object
必须覆盖 equals
和 hashCode
才能使其工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。