java实现哈希查找

哈希查找(Hash Searching)是一种基于哈希表实现的查找算法。它通过将查找元素的关键字映射到哈希表中的位置来进行查找。

下面是一个简单的Java实现哈希查找的例子:

import java.util.Arrays;
public class Main {
    private static final int SIZE = 10; // 哈希表大小
    private int[] table; // 哈希表

    public Main() {
        table = new int[SIZE];
        Arrays.fill(table, -1); // 初始化哈希表,-1表示该位置没有元素
    }

    // 哈希函数,将关键字映射到哈希表中的位置
    private int hash(int key) {
        return key % SIZE;
    }

    // 插入元素
    public void insert(int key) {
        int index = hash(key);
        while (table[index] != -1) { // 处理哈希冲突
            index = (index + 1) % SIZE;
        }
        table[index] = key;
    }

    // 查找元素
    public boolean search(int key) {
        int index = hash(key);
        while (table[index] != -1) { // 处理哈希冲突
            if (table[index] == key) {
                return true;
            }
            index = (index + 1) % SIZE;
        }
        return false;
    }

    // 删除元素
    public void delete(int key) {
        int index = hash(key);
        while (table[index] != -1) { // 处理哈希冲突
            if (table[index] == key) {
                table[index] = -1;
                return;
            }
            index = (index + 1) % SIZE;
        }
    }

    public static void main(String[] args) {
        Main hashSearch = new Main();
        hashSearch.insert(2);
        hashSearch.insert(5);
        hashSearch.insert(9);
        hashSearch.insert(12);
        System.out.println(hashSearch.search(5)); // true
        System.out.println(hashSearch.search(8)); // false
        hashSearch.delete(5);
        System.out.println(hashSearch.search(5)); // false
    }
}


在这个例子中,我们使用一个长度为10的整型数组实现哈希表,哈希函数采用取余运算。当产生哈希冲突时,我们采用线性探测法来处理,即顺次查找下一个位置直到找到空位置为止。在实现了插入、查找和删除操作之后,我们对哈希表进行了测试。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值