用java编程语言写个哈希表
时间: 2023-10-16 10:31:45 浏览: 39
以下是一个简单的哈希表实现,使用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;
}
}
}
```
这个哈希表实现使用了线性探测法解决哈希冲突。当插入一个元素时,首先计算该元素的哈希值,然后如果对应的位置已经有元素,就向后寻找下一个位置,直到找到一个空位置为止。当查找一个元素时,同样计算哈希值,然后如果对应的位置不为空且不是要查找的元素,就向后寻找下一个位置,直到找到要查找的元素或一个空位置为止。当删除一个元素时,同样计算哈希值,然后如果对应的位置不为空且不是要删除的元素,就向后寻找下一个位置,直到找到要删除的元素或一个空位置为止。