码迷,mamicode.com
首页 > 其他好文 > 详细

706.设计哈希映射

时间:2020-04-08 10:20:21      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:模拟   fine   turn   cti   block   技术   hashmap   class   put   

2020-04-08
设计哈希映射
不使用任何内建的哈希表库设计一个哈希集合 具体地说,你的设计应该包含以下的功能
  • put(key, value):向哈希映射中插入(键,值)的数值对。如果键对应的值已经存在,更新这个值。
  • get(key):返回给定的键所对应的值,如果映射中不包含这个键,返回-1。
  • remove(key):如果映射中存在这个键,删除这个数值对。

技术图片

题解:
思路1: 使用对象设计哈希集合
/**
 * Initialize your data structure here.
 */
var MyHashMap = function () {
  this.hashContent = {}; // 使用对象模拟hash表
};
MyHashMap.prototype.put = function (key, value) {
  this.hashContent[key] = value; // 没有值则赋值 有值则覆盖
};
MyHashMap.prototype.get = function (key) {
  // 用hasOwnProperty是因为 如果key的val就是undefined 那么用if就无法判断这个key到底存不存在
  if (this.hashContent.hasOwnProperty(key)) return this.hashContent[key];
  // 也可以用if(key in this.hashContent)
  // if (key in this.hashContent) return this.hashContent[key];
  return -1;
};
MyHashMap.prototype.remove = function (key) {
  if (this.hashContent.hasOwnProperty(key)) delete this.hashContent[key];
};

 

 

706.设计哈希映射

标签:模拟   fine   turn   cti   block   技术   hashmap   class   put   

原文地址:https://www.cnblogs.com/lanpang9661/p/12657800.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!