// JavaScript Document
function HashTable(){
    this._hash={};
    this._count=0;
    
    
    /**
    *添加或者更新key
    */
    this.put=function(key,value){
        if(this._hash.hasOwnProperty(key)){
            this._hash[key]=value;
            return true;
        }else{
                this._hash[key]=value;
                this._count++;
                return true;
            }
    }
    
    
    /**
    *获取key指定的值
    */
    this.get=function(key){
        if(this.containsKey(key))
            return this._hash[key];
    }    
    
    
    /**
    *获取元素个数
    */    
    this.size=function(){
        return this._count;
    }
    
    
    /**
    *检查是否为空
    */
    this.isEmpty=function(){
        if(this._count<=0)
            return true;
        else return false;
    }
    
    
    /**
    *检查是否包含指定的key
    */
    this.containsKey=function(){
            return this._hash.hasOwnPropetry(key);
    }
    
    
    /**
    *检查是否包含指定的value
    */
    this.containsValue=function(){
        for(var strKey in this._hash)
            if(this._hash[strKey]==value)
                return true;                
        return false;
    }
    
    
    /**
    *删除一个key
    */
    this.remove=function(key){
            delete this._hash[key];
            this._count--;
    }
    
    
    /**
    *删除所有的key
    */
    this.clear=function(){
        this._hash={};
        this._count=0;
    }
    
    
    /**
    *从HashTable中获取Key的集合,以数组的形式返回
    */
    this.keySet=function(){
        var arrKeySet= new Array();
        var index=0;
        for(var strKey in this._hash){
            arrKeySet[index++]=strKey;
        }
        return (arrKeySet.length==0)?null:arrKeySet;
    }
    
    
    /**
    *从HashTable中获取Key的集合,以数组的形式返回
    */
    this.values=function(){
        var arrValues= new Array();
        var index=0;
        for(var strKey in this._hash){
            arrValues[index++]=this._hash[strKey];
        }
        return (arrValues.length==0)?null:arrValues;
    }
}

js 定义hash类的更多相关文章

  1. js定义类和方法

    js中定义一个类 //定义一个user类 var user = function(){ //类中的属性 var age; //设置age的值 var setAge = function(age){ t ...

  2. JS定义类的六种方式详解

    转载自: http://www.jb51.net/article/84089.htm 在前端开发中,经常需要定义JS类.那么在JavaScript中,定义类的方式有几种,分别是什么呢?本文就JS定义类 ...

  3. js定义类的方法

    ECMAScript6已经支持了class,但之前版本都不支持类,但是可以通过一些方法来模拟类. js中的类,既是重点,也是难点,很多时候都感觉模棱两可. 首先强调一下js中很重要的3个知识点:thi ...

  4. 通过寄生组合式继承创建js的异常类

    最近项目中在做js的统一的异常处理,需要自定义异常类.理想的设计方案为:自定义一个异常错误类BaseError,继承自Error,然后再自定义若干个系统异常,例如用户取消异常.表单异常.网络异常,这些 ...

  5. NodeJs中类定义及类使用

    1.首先定义类Point,文件名为point.class.js: // 定义类 class Point { //构造函数 constructor(x, y) { this.x = x;//类中变量 t ...

  6. js中的类

    概述 经典的老书害人啊,全是讨论怎么解决javascript里面用函数形式定义类的坑.结果es2015直接用class关键字解决了所有问题.虽然class关键字没有什么新东西,只是js现有继承结构的语 ...

  7. 【JS】#001 JS定义对象写法(原型、JSON方式)

    下面主要写两种 JS 定义对象的 常用写法 写法1:[很像面向对象语言中的写法] function zhongxia(age) { this.age = age; } zhongxia.name = ...

  8. js中有关类、对象的增强函数

    javascript中继承的实现 基础实现 function Range(from,to){ this.from =from; this.to =to; } Range.prototype = { i ...

  9. js常用工具类.

    一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...

随机推荐

  1. Android数据适配器(Adapter)优化:使用高效的ViewHolder

    原文链接:http://stackvoid.com/using-adapter-in-efficiency-way/ 在使用Listview或GridView的时候,往往须要自己定义数据适配器.一般都 ...

  2. android 国际化 设置

    复制了他人的方法 方法和步骤 1 配置选项包括语言代号和地区代号.表示中文和中国的配置选项是 zh-rCN; 表示英文和美国的配置选项是en-rUS.其中,zh 和 en 表示中文和英文: 2 如果想 ...

  3. ios uitableview button 获取cell indexpath.row

    在iOS7下面已经无效,因为iOS7的层级关系发生变化 UITableViewCell->UITableViewCellScrollView->UITableViewCellContent ...

  4. jquery基础研究学习【基础】

    2017年6月6日15:07:58     该看:http://www.runoob.com/jquery/jquery-fade.html                淡入淡出 jQuery 教程 ...

  5. Linq实现between拓展

    先写一个拓展方法 static class Ext { public static IQueryable<TSource> Between<TSource, TKey> (th ...

  6. 使用ILookup<TKey, TElement> 接口查找集合

    public class Program { public static void Main() { // 创建一个放入ilookup数据结构的School清单. List<School> ...

  7. java jdk和android sdk的安装以及环境变量的配置

    安卓环境变量设置 (烦)http://wenku.baidu.com/link?url=QRwpFhP8d0yJorhcvuZPrz3lNFQW-uwYg6TlZtv6uen6_SVsvRrzf0UJ ...

  8. Dire Wolf(区间DP)

    Dire Wolf Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)Total ...

  9. mongo explain分析详解

    1 为什么要执行explain,什么时候执行 explain的目的是将mongo的黑盒操作白盒化. 比如查询很慢的时候想知道原因. 2 explain的三种模式 2.1 queryPlanner 不会 ...

  10. rm_invalid_file

    import xlrd import time import sys import os import requests import sqlite3 import threading curPath ...