Java中哈希表操作

import java.util.HashMap;

public class HashTableTest {
    public static void main(String[] args) {
        // 通过Array创建哈希表
        String[] hashTable = new String[4];
        // 通过HashMap库创建哈希表
        HashMap<Integer, String> map = new HashMap<>();

        // 添加元素
        // 时间复杂度:O(1)
        hashTable[1] = "zhangsan";
        hashTable[2] = "lisi";
        hashTable[3] = "wangwu";
        map.put(1, "zhangsan");
        map.put(2, "lisi");
        map.put(3, "wangwu");

        // 更新元素
        // 时间复杂度:O(1)
        hashTable[1] = "taony";
        map.put(1, "taony");

        // 移除元素
        // 时间复杂度:O(1)
        hashTable[1] = "";
        map.remove(1);

        // 获取 value
        // 时间复杂度:O(1)
        String temp = hashTable[3];
        map.get(3);

        // 检查 key
        // 时间复杂度:O(1)
        // hashTable check the length
        map.containsKey(3);

        // 长度
        // 时间复杂度:O(1)
        // hashTable Size variables
        map.size();

        // 是否为空?
        // 时间复杂度:O(1)
        // hashTable Size variables
        map.isEmpty();

    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java哈希表(Hashtable)是使用哈希算法实现的数据结构,用于存储键值对。在Hashtable,每个键值对被封装在一个内部类Entry,并且我们使用Entry的实例来构建哈希表哈希表的实现包含以下几个步骤: 1. 首先定义一个节点类Node,用于保存每个键值对的数据。节点类包含两个字段:key和value。此外,还有一个指向下一个节点的指针next。 2. 定义一个Node数组array,用于存储所有的节点。初始时,数组的大小为默认大小。同时还定义了一个变量size,用于记录当前的数据个数。还设置了一个负载因子LOAD_FACTOR的最大值和一个默认桶的大小DEFAULT_SIZE。 3. 当新增元素时,将key通过哈希算法计算得到在数组的索引index。然后在该索引位置的链表查找是否存在相同的key,如果存在则更新对应的value;如果不存在则创建一个新的节点,并将其插入到链表的头部。 4. 在新增元素后,判断当前的负载因子是否超过了设定的最大值0.75。如果超过了,则进行扩容操作,将数组的大小扩大为原来的两倍,并重新计算每个元素的索引。 5. 获取与指定key对应的value值时,同样通过哈希算法计算出在数组的索引,然后遍历该索引位置的链表,找到与key匹配的节点,并返回其对应的value值。 以上是Java哈希表的基本使用。如果您有其他相关问题,请随时提问。 相关问题: 1. 哈希表的查找操作是如何实现的? 2. 在哈希表,如何处理哈希冲突? 3. Java的HashMap和Hashtable有什么区别?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值