`
蛤蟆仙人
  • 浏览: 118300 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript中实用的HashMap对象

阅读更多
<script language="javascript">   
 /**  
 *作者 :Fantasy  
 *Email: fantasycs@163.com  
 *QQ   : 8635335  
 *Blog : http://www.blogjava.net/fantasy  
 *版本 :V1.1   
 */  
 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();   
     }   
 }   
    
 var map = new HashMap();   
    
 /*  
 map.put("A","1");  
 map.put("B","2");  
 map.put("A","5");  
 map.put("C","3");  
 map.put("A","4");  
 */  
    
 /*  
 alert(map.containsKey("XX"));  
 alert(map.size());  
 alert(map.get("A"));  
 alert(map.get("XX"));  
 map.remove("A");  
 alert(map.size());  
 alert(map.get("A"));  
 */  
    
 /** 同时也可以把对象作为 Key **/  
 /*  
 var arrayKey = new Array("1","2","3","4");  
 var arrayValue = new Array("A","B","C","D");  
 map.put(arrayKey,arrayValue);  
 var value = map.get(arrayKey);  
 for(var i = 0 ; i < value.length ; i++)  
 {  
     //alert(value[i]);  
 }  
 */  
 /** 把对象做为Key时 ,自动调用了该对象的 toString() 方法 其实最终还是以String对象为Key**/  
    
 /** 如果是自定义对象 那自己得重写 toString() 方法 否则 . 就是下面的结果 **/  
    
 function MyObject(name)   
 {   
     this.name = name;   
 }   
    
 /**  
 function MyObject(name)  
 {  
     this.name = name;  
       
     this.toString = function ()  
     {  
         return this.name;  
     }  
 }  
 **/  
 var object1 = new MyObject("小张");   
 var object2 = new MyObject("小名");   
    
 map.put(object1,"小张");   
 map.put(object2,"小名");   
 alert(map.get(object1));   
 alert(map.get(object2));   
 map.remove("xxxxx");   
 alert(map.size());   
    
 /** 运行结果 小名 小名 size = 1 **/  
    
 /** 如果改成复写toString()方法的对象 , 效果就完全不一样了 **/  
    
 </script>  

 

分享到:
评论

相关推荐

    Javascript实现和操作HashMap

    在JavaScript中,我们可以利用对象(object)作为HashMap的基础,因为JavaScript的对象本质上就是一个键值对的集合,其内部已经实现了哈希表的机制。 ### 自定义HashMap ```javascript class HashMap { ...

    javaScript模拟的HashMap数据结构的对象

    javaScript模拟的HashMap数据结构,可以方便的put和get。几乎和Java中HashMap类的功能一模一样。非常好用的!

    基于JavaScript的HashMap实现

    在JavaScript中,HashMap是一种常用的键值对存储结构,它提供了快速的插入、删除和查找操作。JavaScript本身并不直接支持HashMap,但我们可以利用对象(Object)的特性来模拟HashMap的实现。这篇博客“基于...

    一个基于js的HashMap

    在JavaScript中,HashMap是一种数据结构,它允许我们通过键(key)来存储和检索值(value),类似于对象,但提供了一种更高效的方式来处理大量数据。JavaScript原生并不支持HashMap,但开发者可以通过自定义类来实现...

    javascript实现的HashMap类代码

    最后的示例代码演示了如何创建一个HashMap对象,并使用它的方法来添加、更新、删除和检索数据。通过这个示例,我们可以看到JavaScript实现的HashMap类的实用性和灵活性。 理解了以上知识点,我们能够更好地掌握如何...

    js 版 java hashmap

    在JavaScript中,我们通常使用对象(Object)来模拟HashMap的行为,因为对象的属性名可以作为键,属性值则为对应的值。然而,这种模拟方式存在局限性,比如键必须是字符串或Symbol,且没有内置的方法来处理冲突。 ...

    js-hashmap:javascript hasmap实现

    length 返回HashMap对象中键/值对的数量。 HashMap . size 返回HashMap对象中键/值对的数量。 ## Methods ### HashMap访问器方法 HashMap . prototype . set ( key , value ) 设置HashMap对象中键的值。 返回...

    详解JavaScript中Hash Map映射结构的实现_.docx

    总结来说,JavaScript中的HashMap实现需要注意对象原型链的影响,使用`hasOwnProperty`来检查对象自身属性,以及通过创建无原型的裸对象来避免潜在问题。通过这种方式,可以创建一个更高效、更可控的键值对存储结构...

    韩顺平培训学员面试资料涵盖Java+javascript

    韩顺平培训学员面试资料+文档大全(涵盖...上面例子中的name和page就是名为book的对象中的property. 我们可以用delete来删除Object中的property: "delete book.name;". 除了Object, Date等buildin的对象外, 我们可以

    参加JavaScript面试,必须搞懂的问题(推荐)

    对象是键值对的集合,它们类似于Java中的HashMap。在JavaScript中,创建对象通常是通过`new`操作符配合构造函数完成的。例如,创建一个名为`book`的对象,我们可以这样做: ```javascript var book = new Object();...

    JavaScript 学习 - 提高篇

    在 JavaScript 中,对象是一组数据的键值集合,类似于 Java 中的 HashMap。所有这些数据都是 Object 的属性。我们可以使用 constructor 函数来建立一个对象,例如 `new Date()`、`new Object()`。对象的属性可以通过...

    HashMap.js

    模拟java中的HashMap类js类对象,可以与js的Array类对象配合使用

    javascript 各种函数用法

    本文将详细介绍 JavaScript 中的数组函数、数字函数、字符串函数、表单验证、HashMap、堆栈、日期函数、call 函数等。 数组函数 JavaScript 中的数组函数提供了多种方法来操作数组,包括: * `push()`: 将参数...

    前端开源库-hashmap

    `HashMap`作为一种常见的数据结构,它在JavaScript中的应用广泛,特别是在处理大量数据时,可以提供比原生对象更快的查找、添加和删除操作。`HashMap`是基于键值对存储的数据结构,其核心特性是通过哈希函数快速定位...

    HashMap类

    HashMap类在Java编程...在阅读《HashMap1.js》和《HashMap.js》这两个文件时,可以深入分析其JavaScript版本的HashMap实现,虽然与Java版本可能有所不同,但基本的哈希映射原理是相通的,有助于拓宽对哈希表的理解。

    js 集合类实现 (HashMap, Set, ArrayList, etc.)

    除了上述的实现,JavaScript还提供了`WeakMap`和`WeakSet`,它们的特殊之处在于其键(在`WeakMap`中)或元素(在`WeakSet`中)不会阻止垃圾回收,即使存在引用也不会阻止对象被清理。 总的来说,JavaScript的集合类...

    JavaScript面试笔试题[文].pdf

    9. **线程安全**:JavaScript在浏览器环境中是单线程的,因此Vector和HashMap在JavaScript中不存在,且没有线程安全的考虑。但在Node.js服务端环境中,有一些库提供了线程安全的集合操作。 10. **异常处理**:当一...

    各种javascript列表的实现

    在JavaScript中,列表是一种常见的数据结构,用于存储和操作有序的数据集合。本篇文章将深入探讨JavaScript中的各种列表实现,包括数组、链表、队列、栈等,并通过具体实例来阐述它们的用法和特点。 首先,我们最常...

    JavaScript编写简化了许多常见的数据结构的例子

    在JavaScript中,可以通过对象和数组来实现图,节点是对象,边可以通过引用或额外的关联数组来表示。 集合(Set)数据结构不包含重复元素,JavaScript从ES6开始提供了内置的`Set`对象,支持添加、删除元素以及检查...

Global site tag (gtag.js) - Google Analytics