请用Java语言实现链地址散列表查找
时间: 2023-11-08 13:05:37 浏览: 44
链地址散列表(Chained Hash Table)是散列表的一种实现方式,它使用数组存储数据,每个数组元素都指向一个链表。当多个元素散列到同一个位置时,它们就被插入到同一个链表中。查找元素时,首先计算它的散列值,然后在对应的链表中查找。下面是用 Java 语言实现链地址散列表查找的示例代码:
```java
import java.util.LinkedList;
public class ChainedHashTable {
private LinkedList<Integer>[] table;
private int capacity;
public ChainedHashTable(int capacity) {
this.capacity = capacity;
table = new LinkedList[capacity];
for (int i = 0; i < capacity; i++) {
table[i] = new LinkedList<>();
}
}
public void insert(int key) {
int index = hashFunction(key);
table[index].add(key);
}
public boolean search(int key) {
int index = hashFunction(key);
return table[index].contains(key);
}
public void delete(int key) {
int index = hashFunction(key);
table[index].removeFirstOccurrence(key);
}
private int hashFunction(int key) {
return key % capacity;
}
}
```
在这个示例中,我们使用泛型的 LinkedList 类来表示链表,使用数组来存储散列表。在构造函数中,我们初始化数组并为每个数组元素都创建一个空的链表。insert() 方法将元素插入到对应的链表中,search() 方法在对应的链表中查找元素,delete() 方法从对应的链表中删除元素。hashFunction() 方法是散列函数,它将元素映射到数组的某个位置。在这个示例中,我们使用取模运算来实现散列函数,但在实际应用中,还可以使用其他的散列函数。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)