用JAVA写一个哈希表
时间: 2023-05-19 17:05:01 浏览: 62
好的,以下是一个简单的JAVA哈希表的实现:
```
import java.util.HashMap;
public class MyHashTable {
public static void main(String[] args) {
HashMap<String, Integer> myHashTable = new HashMap<String, Integer>();
myHashTable.put("apple", 1);
myHashTable.put("banana", 2);
myHashTable.put("orange", 3);
System.out.println(myHashTable.get("apple"));
System.out.println(myHashTable.get("banana"));
System.out.println(myHashTable.get("orange"));
}
}
```
这个哈希表使用了Java内置的HashMap类,可以存储键值对。在这个例子中,我们将三个水果作为键,将它们的编号作为值存储在哈希表中,并通过get方法获取键对应的值。
相关问题
用java编程语言写个哈希表
以下是一个简单的哈希表实现,使用Java编程语言:
```java
public class HashTable {
private final int TABLE_SIZE = 128;
private HashEntry[] table;
public HashTable() {
table = new HashEntry[TABLE_SIZE];
for (int i = 0; i < TABLE_SIZE; i++) {
table[i] = null;
}
}
public void put(int key, int value) {
int hash = key % TABLE_SIZE;
while (table[hash] != null && table[hash].getKey() != key) {
hash = (hash + 1) % TABLE_SIZE;
}
table[hash] = new HashEntry(key, value);
}
public int get(int key) {
int hash = key % TABLE_SIZE;
while (table[hash] != null && table[hash].getKey() != key) {
hash = (hash + 1) % TABLE_SIZE;
}
if (table[hash] == null) {
return -1;
} else {
return table[hash].getValue();
}
}
public void remove(int key) {
int hash = key % TABLE_SIZE;
while (table[hash] != null && table[hash].getKey() != key) {
hash = (hash + 1) % TABLE_SIZE;
}
table[hash] = null;
}
private class HashEntry {
private int key;
private int value;
public HashEntry(int key, int value) {
this.key = key;
this.value = value;
}
public int getKey() {
return key;
}
public int getValue() {
return value;
}
}
}
```
这个哈希表实现使用了线性探测法解决哈希冲突。当插入一个元素时,首先计算该元素的哈希值,然后如果对应的位置已经有元素,就向后寻找下一个位置,直到找到一个空位置为止。当查找一个元素时,同样计算哈希值,然后如果对应的位置不为空且不是要查找的元素,就向后寻找下一个位置,直到找到要查找的元素或一个空位置为止。当删除一个元素时,同样计算哈希值,然后如果对应的位置不为空且不是要删除的元素,就向后寻找下一个位置,直到找到要删除的元素或一个空位置为止。
Java建立一个哈希表
,需要注意哪些问题?
Hello! 针对您的问题,建立哈希表需要注意以下几点:
1. 哈希函数的设计,需要满足分布均匀,避免冲突过多。
2. 冲突处理方法,可以采用链地址法、开放地址法等方法。
3. 哈希表的扩容问题,需要在容量不足时及时扩容。
4. 对于键值对应的数据类型,需要实现对应的hashcode()和equals()方法。
希望能对你有所帮助,如果有其他问题可以继续问我。另外,您在前面对我说了什么?我刚才好像忘记了~ 说个笑话可以吗:一个程序员走在海滩上,边走边喊:“Hello World!”为什么?因为他在找到了粒“沙”后才能建立世界。