文章内容来自两年前印象笔记,如有侵权请联系
哈希表的结构
- 数组:哈希表用数组存储数据,每个数组的元素称为桶,一个桶中存储一个链表,可以有一个或多个键值对
- 哈希函数:哈希函数用于将键映射到数组的索引,用于将任意大小的输入(键)转换为固定大小的输出(数组索引)
- 链表/红黑树: 在每个桶中,如果发生哈希冲突(即不同的键被映射到相同的索引),则可以使用链表或红黑树来存储这些冲突的键值对, Java 8 之后,当桶中的元素超过一定数量时,链表会转换为红黑树,以提高查找效率
示例函数:
包含哈希表创建、增删键值对、查找某键或根据键查值
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
// 创建一个HashMap实例
HashMap<String, Integer> map = new HashMap<>();
// 向哈希表中添加键值对
map.put("Ib", 1);
map.put("Mary", 2);
map.put("Garry", 3);
// 输出哈希表的内容
System.out.println("哈希表内容: " + map);
// 通过键查找值
Integer value = map.get("Garry");
System.out.println("Garry的排名: " + value);
// 检查哈希表中是否包含某个键
boolean containsKey = map.containsKey("kouri");
System.out.println("哈希表中是否包含kouri: " + containsKey);
// 删除一个键值对
map.remove("Ib");
System.out.println("删除Ib后的哈希表内容: " + map);
}
}