javascript散列表实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <script src="js/lib/angular.min.js"></script>
    <script >
        function HashTable() {
            var table = [];

            var loseloseHashCode = function(key){
                var hash = 0;
                for (var i=0; i<key.length; i++) {
                    hash += key.charCodeAt(i);
                }
                return hash % 37;
            };

            this.put = function(key, value) {
                var position = loseloseHashCode(key);
                console.log(position + '-' + key);
                table[position] = value;
            };

            this.get = function(key) {
                return table[loseloseHashCode(key)];
            };

            this.remove = function(key) {
                table[loseloseHashCode(key)] = undefined;
            };
        }

        var hash = new HashTable();
                hash.put('Gandalf', 'gandalf@email.com');
                hash.put('John', 'johnsnow@email.com');
                hash.put('Tyrion', 'tyrion@email.com');

                console.log(hash.get('Gandalf'));
                console.log(hash.get('Loiane'));

                hash.remove('Gandalf');
                console.log(hash.get('Gandalf'));

    </script>

</head>
<body>

</body>
</html>

时间: 2024-09-30 16:16:28

javascript散列表实现的相关文章

方法-基于散列表的电话号码查询系统设计

问题描述 基于散列表的电话号码查询系统设计 基于散列表的电话号码查询系统设计 基本要求: 1) 设每个记录有下列数据项:电话号码.用户名.地址: 2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表: 3) 采用一定的方法解决冲突: 4) 查找并显示给定电话号码的记录: 5) 查找并显示给定用户名的记录. 扩展要求: 1) 系统功能的完善: 2) 设计不同的散列函数,比较冲突率: 3) 在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察 平均查找长度的变化. 解决方案 参考

JavaScript事件列表

javascript javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown IE4.N4 按下鼠标时触发此事件 onmouseup IE4.N4 鼠标按下后松开鼠标时触发此事件 onmouseover IE3.N2 当鼠标移动到某对象范围的上方时触发此事件 onmousemove IE4.N4 鼠标移动时触发此事件 onmouseout IE4.N3

[叩响C#之门] 22.7 Hashtable类 散列表的基本原理和用法

22.7 Hashtable类 散列表(Hashtable)又叫做字典(Dictionary),能够非常快速的添加.删除和查找元素,是现在检索速度最快的数据结构.

oracle的散列表索引

有许多涉及散列表的数据结构可用做索引.我们假定读者知道用作主存数据结构的散列表.在这种结构中有一个散列函数,它以查找键(我们可称之为散列键)为参数并计算出一个介于0到B-1的整数,其中B是桶的数目.桶数组,即一个序号从0~B-1的数组中包含B个链表的头,每一个对应于数组中的一个桶.如果记录的查找键为K,那么通过将该记录链接到桶号为h(K)的桶列表中来存储它,其中h是散列函数. 1.辅存散列表 有的散列表包含大量记录,记录如此之多,以至于它们主要存放在辅助存储器上,这样的散列表在一些细小而重要的方

java 数据结构- 分离链接散列表,线性探测,平方探测 java 程序代码

问题描述 分离链接散列表,线性探测,平方探测 java 程序代码 给定输入{4371,1323,6173,4199,4344,9679,1989}和散列函数h(x)=x mod 10 分离链接散列表,线性探测,平方探测 java 程序的代码

Java中利用散列表实现股票行情的查询(转)

Java中利用散列表实现股票行情的查询 建设银行云南省保山地区分行 杨绍方 ---- 在java中,提供了一个散列表类Hashtable,利用该类,我们可以按照特定的方式来存储数据,从而达到快速检索的目的.本文以查询股票的收盘数据为例,详细地说明java中散列表的使用方法.一.散列表的原理 ---- 散列表,又称为哈希表,是线性表中一种重要的存储方式和检索方法.在散列表中,可以对节点进行快速检索.散列表算法的基本思想是:由结点的关键码值决定结点的存储地址,即以关键码值k为自变量,通过一定的函数关

链表与散列表和数组的区别

问题描述 链表与散列表和数组的区别? 解决方案 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.数组是一种物理存储单元上连续.顺序的存储结构,可以通过下标访问数组元素.最好百度一下.

【数据结构】回顾散列表

1.散列表(hash table)的实现成为散列(hashing),是一种以常数平均时间执行输入.删除和查找的技术.但是那些需要元素间任何排序信息的数操作将不会得到有效的支持. 2.散列函数示例 int hash(const string & key, int tableSize) { int hashVal=0; for(int i=0;i<key.length();i++) hashVal=37*hashVal+key[i]; hashVal %= tableSize; if(hashV

Ruby中的数组和散列表的使用详解_ruby专题

Ruby的数组(arrays)和散列表(hashes)是被索引的收集(indexed collections). 两者都存储对象的集合,通过键(key)来访问.数组的键是整数.而散列表支持以任何对象作为它的键.数组和散列表会按需调整大小来保存新的元素.访问数组元素是高效的,但是散列表提供了灵活性.任何具体的数组或散列表可以保存不同类型的对象. 使用数组字面量(array literal)--即方括号之间放一组元素--可以创建和初始化新的数组对象.有了数组对象,在方括号之间提供索引便可以访问单个元