您的位置:首页 > 游戏 > 游戏 > 63-java hashmap的原理

63-java hashmap的原理

2024/10/6 6:47:17 来源:https://blog.csdn.net/weixin_41775999/article/details/141900344  浏览:    关键词:63-java hashmap的原理

Java HashMap的底层是哈希表,它是一个数组,每个数组元素是一个链表。调用put(key, value)方法时,HashMap会计算key的哈希值,然后将其映射到数组的一个位置。如果有多个键映射到同一个位置,它们会存储在一个链表中。当需要获取一个值时,HashMap会再次计算键的哈希值,找到对应的数组位置,然后遍历链表以找到正确的键,并返回相应的值。

HashMap的扩容机制也很重要,当HashMap中的元素数量超过阈值(load factor乘以capacity)时,它会创建一个更大的数组,并将所有现有的键值对重新映射到新的数组中。

以下是一个简单的示例,展示了如何使用HashMap:

import java.util.HashMap;public class HashMapExample {public static void main(String[] args) {// 创建一个HashMap实例HashMap<Integer, String> map = new HashMap<>();// 添加键值对map.put(1, "Apple");map.put(2, "Banana");map.put(3, "Cherry");// 获取并打印值System.out.println(map.get(1)); // 输出: AppleSystem.out.println(map.get(2)); // 输出: BananaSystem.out.println(map.get(3)); // 输出: Cherry// 检查键是否存在System.out.println(map.containsKey(2)); // 输出: true// 删除键值对map.remove(1);// 检查值是否存在System.out.println(map.containsValue("Apple")); // 输出: false// 获取HashMap大小System.out.println(map.size()); // 输出: 2// 遍历HashMapfor (Integer key : map.keySet()) {System.out.println(key + ": " + map.get(key));}}
}

以上代码展示了HashMap的基本用法,包括添加元素、获取元素、检查键和值的存在、删除元素、获取大小和遍历。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com