﻿  function HashMap()
  {
      /** Map 大小 **/
      var size = 0;
      /** 对象 **/
      var entry = new Object();
      
      /** 存 **/
      this.put = function (key , value)
      {
          if(!this.containsKey(key))
          {
              size ++ ;
          }
          entry[key] = value;
      }
      
      /** 取 **/
      this.get = function (key)
      {
          return this.containsKey(key) ? entry[key] : null;
      }
      
      /** 删除 **/
      this.remove = function ( key )
      {
          if( this.containsKey(key) && ( delete entry[key] ) )
          {
              size --;
          }
      }
      
      /** 是否包含 Key **/
      this.containsKey = function ( key )
      {
          return (key in entry);
      }
      
      /** 是否包含 Value **/
      this.containsValue = function ( value )
      {
          for(var prop in entry)
          {
              if(entry[prop] == value)
              {
                  return true;
              }
          }
          return false;
      }
      
      /** 所有 Value **/
      this.values = function ()
      {
          var values = new Array();
          for(var prop in entry)
          {
              values.push(entry[prop]);
          }
          return values;
      }
      
      /** 所有 Key **/
      this.keys = function ()
      {
          var keys = new Array();
          for(var prop in entry)
          {
              keys.push(prop);
          }
          return keys;
      }
      
      /** Map Size **/
      this.size = function ()
      {
          return size;
      }
      
      /* 清空 */
      this.clear = function ()
      {
          size = 0;
          entry = new Object();
      }
  }

