`
jokeymzx
  • 浏览: 51740 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用js模拟HashMap

阅读更多

HashMap是java中适用最广泛的接口之一,可惜在JS中没有类似的功能需要自己实现
下面的代码利用js实现了一个简单的HashMap

//利用JS模拟HashMap
function JMap(){
  this.keyArr = new Array();//存放键值的数组
  this.valueArr = new Array();//存放内容值的数组
  this.length = 0;
}

JMap.prototype.put = function (key, value)
{
     key = key.toString().replace(/^\s+|\s+$/g,"");
  var len = this.containsKey(key);
  if(len==-1){
  this.keyArr[this.length] = key;
  this.valueArr[this.length] = value;
     this.length ++;
  }else{
    this.valueArr[len] = value;
  }
}
//判断指定的键值是否存在,返回改键值在键值数组中的位置
JMap.prototype.containsKey = function (key){
    
 var len = -1;
    for(var i=0;i<this.length;i++){
  
   if(key==this.keyArr[i]){
  len = i;
  break;
   }
 }
 return len;
}

JMap.prototype.get = function (key)
{
   
    var the_value = "";
    for(var i=0;i<this.length;i++){

   if(key==this.keyArr[i]){
  the_value = this.valueArr[i];
  break;
   }
   }
  
   return the_value;

2
0
分享到:
评论
1 楼 dangzhao 2008-04-14  

var jsMap={
Map:{},
set:function (key,value){
this.Map[key]=value;
},
get:function(key){
return this.Map[key];
}
};
jsMap.set("key","Hello Map");
alert(jsMap.get("key"));

在set,get前加一些判断

相关推荐

    基于JavaScript的HashMap实现

    JavaScript本身并不直接支持HashMap,但我们可以利用对象(Object)的特性来模拟HashMap的实现。这篇博客“基于JavaScript的HashMap实现”可能详细阐述了如何通过自定义函数来创建一个高效且灵活的HashMap数据结构。...

    一个基于js的HashMap

    在JavaScript中,我们通常会利用对象的属性访问特性来模拟HashMap的行为,因为对象的属性名本质上就是经过哈希处理的键。 1. **哈希函数**:一个良好的哈希函数能够将任何类型的键转化为整数,这个整数可以作为数组...

    js 版 java hashmap

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

    JS hashMap实例详解

    在JavaScript中,我们可以利用对象的属性来模拟键值对的存储。 ### 2. 实例详解 #### 2.1 创建HashMap对象 在JavaScript中,我们可以用一个构造函数来创建一个HashMap对象。构造函数内部会创建一个空的对象`this....

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

    在JavaScript中,虽然没有直接的HashMap实现,但我们可以利用`Object`来模拟这一功能。`Object`的键通常是字符串,但可以通过`Symbol`创建非字符串键,从而实现类似于哈希映射的行为。例如: ```javascript let ...

    交通模拟查询

    3. **哈希表(HashMap)**:快速查找和存取城市、车站、航班或车次的信息,可以利用哈希表的O(1)查找效率。 4. **队列(Queue)**:在广度优先搜索(BFS)中用于存储待处理节点,用于查询所有可能的路径或者寻找最...

    网上购物车系统

    5. `resources`目录:可能包含一些配置文件或者静态资源,如图片、CSS样式表和JavaScript文件。 总结来说,网上购物车系统采用Struts框架,利用其MVC架构、Action、ActionForm、配置文件、JSP页面和标签库等特性,...

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

    JavaScript可以通过数组模拟栈的行为,利用`push()`和`pop()`方法来实现入栈和出栈操作。 队列(Queue)是先进先出(FIFO)的数据结构,适用于任务调度和事件处理。JavaScript的数组同样可以模拟队列,通过`push()`...

    js中模仿java的map使用

    这种做法有助于理解两种语言之间处理键值对数据结构的不同方式,并且能够帮助开发者利用JavaScript来构建类似的功能。 ### 模拟Java Map的基本概念 在Java中,`Map`接口是一个存储键值对的集合类。它允许用户通过...

    leetcode-js:我可以参考过去使用JavaScript解决类似Leetcode的问题的解决方案的一种方法

    - 哈希表:JavaScript对象可作为简单的哈希表,复杂情况可能需要自定义HashMap。 4. **算法** - 排序算法:JavaScript内置的sort方法是简单排序,但LeetCode中经常需要快速排序、归并排序、堆排序等高级排序算法...

    宠物医院,实现了原有宠物医院的特性,并做了一定的修改

    宠物医院项目是一个基于Java语言开发的应用程序,它模拟了实际生活中宠物医院的运营流程,提供了丰富的功能,如宠物登记、预约服务、病例记录等。在这个项目中,开发者充分利用了Java的强大特性和API,同时结合了jsp...

    DS_Algo_in_JS

    JavaScript的Object本质上就是哈希表,可以利用它实现高效的查找和存储。 6. 树(Tree):包括二叉树、二叉搜索树、平衡树(AVL树、红黑树)等,适用于复杂的数据组织。JavaScript中可通过对象和数组组合来模拟树...

    DataStructures-JS:estudos,exemplos,达科斯州立大学

    在JavaScript中,可以使用数组模拟栈的操作,如push(入栈)和pop(出栈)。 3. **队列**(Queue):遵循“先进先出”(FIFO)原则。JavaScript数组同样可以用来实现队列,使用unshift(入队)和shift(出队)方法...

    红心大战 游戏源码

    本项目采用Java语言编写,使得开发者能够深入理解Java在移动设备上的应用,同时也展示了如何利用编程技术实现经典桌面游戏的移植。 首先,我们要了解【拱猪】和【红心大战】是两种不同的扑克牌游戏。拱猪是源于北美...

    jasper

    这模拟了报表中的实际数据,可以替换为从数据库或其他数据源获取的数据。 6. **报表渲染与输出**: 虽然代码中没有显示如何实际运行报表和将结果发送到客户端,但在实际的Servlet中,这通常涉及到调用`...

    基于Java和TypeScript的数据结构,LeetCode题解.zip

    虽然JavaScript原生不支持所有这些数据结构,但通过类和对象可以方便地模拟它们。 在LeetCode平台上,常见的数据结构题目包括但不限于以下几种: 1. 链表:如两数相加、删除中间节点、反转链表等,需要掌握链表的...

    java web,毕业设计.zip

    1. **Java基础**: 作为Java Web开发的基础,需要掌握Java语言的基本语法、面向对象编程、异常处理、集合框架(如ArrayList, HashMap等)以及IO流等。 2. **Servlet与JSP**: Servlet是Java Web应用的核心,用于处理...

    数据结构

    在JavaScript中,虽然不像C++或Java那样有内置的数据结构库,但开发者仍然可以利用JavaScript的灵活性来实现各种数据结构。下面将详细讨论与"数据结构"相关的知识点,并结合JavaScript这一标签,讲解如何在...

    java毕业设计&课设-药品集中采购系统视频教程(视频+源码+资料).zip

    这个系统可能是为了模拟实际中的药品采购流程,帮助用户理解如何利用Java技术来构建企业级应用。 1. **Java编程基础**:在开发这个系统的过程中,你需要掌握Java的基础语法,包括类、对象、继承、多态等面向对象...

Global site tag (gtag.js) - Google Analytics