HashMap 简单介绍

[code="java"]//HashMap 的简单介绍
public static void hashMap(){
//HashMap 里面的key 键是唯一的,重复的话就会将值覆盖
HashMap map = new HashMap();
map.put(1, "abc");
map.put(2, "ABC");
map.put("a", "msf");
//如果出现了相同的键的时候 , 那么值将会进行覆盖

//迭代器 获取键值
Iterator s = map.keySet().iterator();

//取值 s.hasNext() ; 判断是否有值 next(); 方法获取当前值
while(s.hasNext()){
Object temp = s.next();
System.out.println("此时的键是:key="+temp);
}

}
[/code]
### 三级标题:HashMap的基本概念和工作原理 HashMap 是 Java 中非常常用的数据结构,它提供了映射功能,可以存储键值对(key-value pairs)的数据。通过使用一个对象作为键(Key),可以快速查找对应的值(Value)。HashMap 基于哈希表实现,因此被称为 HashMap [^1]。 在 Java 的数据结构中,HashMap 是集合框架的重要组成部分,用于存储键值对,并支持通过键来快速检索对应的值 [^2]。其内部实现依赖于一个静态内部类 `Node`,每个 `Node` 对象包含键、值以及计算后的哈希值,同时还维护了一个指向下一个节点的引用,以处理哈希冲突 [^3]。 HashMap 的工作原理主要分为以下几个步骤: 1. **哈希计算**:当插入一个键值对时,HashMap 会根据键的 `hashCode()` 方法计算出一个哈希值。 2. **索引定位**:将哈希值通过某种方式转换为数组的索引位置,通常是通过与数组长度进行位运算(例如 `index = hash & (length - 1)`)。 3. **插入或更新**:如果该索引位置没有其他元素,则直接插入;如果有多个元素(即发生哈希冲突),则使用链表或红黑树的方式存储多个 `Node` 节点。 4. **扩容机制**:HashMap 有一个初始容量(默认为 32)和负载因子(默认为 0.75)。当元素数量超过容量与负载因子的乘积(即阈值)时,HashMap 会进行扩容操作,通常是将容量翻倍并重新哈希所有元素 [^4]。 以下是一个简单HashMap 使用示例: ```java import java.util.HashMap; public class HashMapExample { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2); map.put("orange", 3); System.out.println("Value for key 'banana': " + map.get("banana")); // 输出 2 } } ``` HashMap 在实际开发中被广泛应用于缓存、计数器等场景,尤其适合需要频繁插入、删除和查找的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值