题目来源:
leetcode题目,网址:706. 设计哈希映射 - 力扣(LeetCode)
解题思路:
使用长度为1009得 map 数组存放数据,使用链地址法处理哈希冲突。
解题代码:
class MyHashMap {
TreeMap<Integer,Integer>[] list;
public MyHashMap() {
list=new TreeMap[1009];
}
public void put(int key, int value) {
if(list[key%1009]==null){
list[key%1009]=new TreeMap<Integer,Integer>();
}
list[key%1009].put(key,value);
}
public int get(int key) {
return list[key%1009]!=null?(list[key%1009].getOrDefault(key,-1)):-1;
}
public void remove(int key) {
if(list[key%1009]!=null)
list[key%1009].remove(key);
}
}
/**
* Your MyHashMap object will be instantiated and called as such:
* MyHashMap obj = new MyHashMap();
* obj.put(key,value);
* int param_2 = obj.get(key);
* obj.remove(key);
*/
总结:
与上题相似,只不过是将LinkedList 变为 TreeMap。
官方题解还是使用LinkedList,但是LinkedList中保存的是新建得保存键值对得类。