#2136. 设计哈希映射
设计哈希映射
问题描述
请你设计一个不使用任何内建的哈希表库的哈希映射(HashMap)。
实现MyHashMap
类:
MyHashMap()
:初始化映射对象。void put(int key, int value)
:向映射中插入一个键值对(key, value)
。如果key已经存在,则更新对应的value。int get(int key)
:返回指定key对应的value;如果映射中不包含key,返回-1。void remove(int key)
:如果映射中存在key,则移除key及其对应的value。
格式
输入
- 一系列操作序列和对应的参数。
输出
- 每个操作的返回值(对于无返回值的操作,如put和remove,返回null)。
样例
样例1
输入
9
MyHashMap put put get get put get remove get
0 1,1 2,2 1 3 2,1 2 2 2
输出
null null null 1 -1 null 1 null -1
解释
MyHashMap myHashMap = new MyHashMap(); myHashMap.put(1, 1); // 映射是 [[1,1]] myHashMap.put(2, 2); // 映射是 [[1,1], [2,2]] myHashMap.get(1); // 返回 1 myHashMap.get(3); // 返回 -1(不存在) myHashMap.put(2, 1); // 更新已有的键,映射是 [[1,1], [2,1]] myHashMap.get(2); // 返回 1 myHashMap.remove(2); // 删除键2,映射是 [[1,1]] myHashMap.get(2); // 返回 -1(不存在)
提示
- 0 <= key, value <= 10^6
- 最多调用10^4次
put
、get
和remove