`
陈新杰
  • 浏览: 107750 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用JAVASCRIPT实现JAVA的HashMap类

    博客分类:
  • java
阅读更多
1function HashMap(){
  2    
  3    var ItemCollection=new Array();
  4    //private
  5    
  6    this.getMapCollection=function (){
  7        return ItemCollection;
  8    }
  9
 10    var MapItem=function (key,value){
 11        
 12        this.key=(key==null?"":key);        
 13        this.value=(value==null?"":value);        
 14        
 15        this.getKey=function (){
 16            return this.key;            
 17        }
 18        
 19        this.getValue=function (){
 20            return this.value;            
 21        }
 22        
 23        this.setKey=function (key){
 24            this.key=key;            
 25        }
 26        
 27        this.setValue=function (value){
 28            this.value=value;            
 29        }
 30    }
 31    
 32    this.put=function (key,value){
 33        var item=new MapItem();        
 34        if(isItemExist(key)==false)
 35        {
 36            item.setKey(key);            
 37            item.setValue(value);            
 38            ItemCollection[ItemCollection.length]=item;            
 39        }else {
 40            item=getItem(key);            
 41            item.setValue(value);            
 42        }
 43    }
 44    
 45    this.putAll=function (itemCollection){
 46        if (HashMap.prototype.isPrototypeOf(itemCollection))
 47        {
 48            connectMap(itemCollection.getMapCollection());
 49            
 50            return true;
 51
 52        } else {
 53            if (Array.prototype.isPrototypeOf(itemCollection))
 54            {
 55                for (var j=0;j<itemCollection.length ;j++ )
 56                {
 57                    if (MapItem.prototype.isPrototypeOf(itemCollection[j])==false)
 58                    {
 59                        return false;
 60                    }
 61                }
 62
 63                connectMap(itemCollection);
 64                
 65                return true;
 66            }
 67        }
 68    }
 69
 70    var connectMap=function (itemsArray){
 71        if (ItemCollection.length==0)
 72        {
 73            for (var i=0;i<itemsArray.length;i++)
 74            {
 75                ItemCollection[i]=itemsArray[i];
 76            }
 77        } else {
 78            var j= (parseInt(itemsArray.length)+parseInt(ItemCollection.length));
 79            var orginalLength=parseInt(ItemCollection.length);                //save the length of ItemCollection before putting
 80            
 81            for (var i=parseInt(ItemCollection.length) ; i<j; i++ )
 82            {
 83                ItemCollection[i]=itemsArray[i-orginalLength];
 84            }
 85        }
 86    }
 87
 88    var getItem=function (key){
 89        var item=new MapItem();        
 90        
 91        for(var i=0;i<ItemCollection.length;i++)
 92        {
 93            if(ItemCollection[i].getKey()==key)
 94            {
 95                item=ItemCollection[i];                
 96                break;                
 97            }
 98        }
 99        return item;        
100    }
101    
102    this.get=function (key){
103        
104        var value="";        
105        
106        for(var i=0;i<ItemCollection.length;i++)
107        {
108            if(ItemCollection[i].getKey()==key)
109            {
110                value=ItemCollection[i].getValue();                
111                break;                
112            }
113        }
114        return value;        
115        
116    }
117    
118    var isItemExist=function (key){
119        
120        var item=new MapItem();        
121        item.setKey("");        
122        item.setValue("");        
123        var flag=false;        
124        
125        for(var i=0;i<ItemCollection.length;i++)
126        {
127            
128            if(ItemCollection[i].getKey()==key)
129            {
130                flag=true;                
131                break;    
132            }
133            
134        }
135        
136        return flag;        
137        
138    }    
139
140    this.remove=function (key){
141        for (var i=0;i<ItemCollection.length;i++)
142        {
143            
144            if (ItemCollection[i].getKey()==key)
145            {
146                var mid=ItemCollection.length/2;
147
148                if (i<mid)
149                {
150                    for (var j=i;j>0 ;j-- )
151                    {
152                        ItemCollection[j]=ItemCollection[j-1];
153                    }
154                } else {
155                    for (var j=i;j<ItemCollection.length ;j++ )
156                    {
157                        ItemCollection[j]=ItemCollection[j+1];
158                    }
159                }                
160                ItemCollection.length=ItemCollection.length-1;
161            }
162        }
163    }
164
165    this.removeAll=function (){
166        ItemCollection.length=0;
167    }
168
169    this.getSize=function (){
170        return ItemCollection.length;        
171    }
172
173
174    this.contain=function (key){
175        for (var i=0;i<ItemCollection.length ;i++ )
176        {
177            if (ItemCollection[i].getKey()==key)
178            {
179                return true;
180            }
181        }
182
183        return false;
184    }
185}

 

分享到:
评论

相关推荐

    js 版 java hashmap

    在描述中提到的"js版java HashMap"可能是指一个JavaScript实现的HashMap类,它模仿了Java中的HashMap数据结构,提供了更高效和灵活的操作。Java的HashMap是一个基于哈希表的Map接口实现,提供快速的插入、删除和查找...

    javascript实现的HashMap类代码

    在计算机编程中,使用类似于Java或JavaScript这样的语言实现HashMap类可以帮助我们更好地管理数据和优化程序性能。 描述中提到的“添加、获取、删除、查询key和value功能”,指的是HashMap类应该具备的基本操作,...

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

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

    js 实现HashMap功能

    用js代码实现java中hashmap 的所有功能

    HashMap类

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

    base64,java与JavaScript实现

    本文介绍了如何使用Java和JavaScript实现Base64编码与解码功能,特别是在Java Spring框架下的具体实现方式。通过这些代码示例,开发者可以快速地集成Base64的功能到自己的应用中,无论是前端还是后端。同时,还介绍...

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

    本篇文章将深入探讨JavaScript中的HashMap、Set和ArrayList等集合类的实现,并与Java中的相应概念进行对比,帮助开发者更好地理解和应用这些数据结构。 **1. HashMap** 在Java中,HashMap是一个散列映射容器,它...

    java实现无限级分类树形,连接mysql数据库

    本教程将介绍如何利用Java来实现这种功能,并结合MySQL数据库进行数据存储,同时通过AJAX技术实现页面的异步刷新。 首先,我们需要建立一个Java实体类来表示树形结构中的节点。这个类通常包含ID(主键)、名称、父...

    实现类似于Java中HashMap功能的js脚本

    实现类似于Java中的HashMap功能,作为一个脚本中的Collection使用,可自行扩展功能。

    HashMap.js

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

    javascript中实现兼容JAVA的hashCode算法代码分享

    2. **JavaScript中的hashCode实现**:由于JavaScript中没有内置的hashCode方法,因此在需要在JavaScript中使用与Java相同的哈希值计算方式时,需要手动实现这个算法。根据文件中的描述,可以通过模拟Java的hashCode...

    Java直接运行JS代码

    在Java编程环境中,有时我们需要与JavaScript交互,例如执行一些动态脚本...开发者可以轻松地在Java程序中执行JavaScript代码,调用JavaScript函数,甚至传递Java对象到JavaScript环境,从而实现两者之间的协同工作。

    JSON入门Java篇-4-用HashMap来构建JSON.rar

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言(包括Java)的习惯,这使得JSON对于程序员来说易于读写。本教程将深入讲解如何在Java...

    html js 用HashMap去掉html中select中的重复值

    这个方法适用于JavaScript环境,如果在服务器端使用Java处理,可以使用HashMap来实现相同的功能,只是代码会有所不同,因为Java处理DOM的操作不同于JavaScript。在Java中,你需要先解析HTML字符串,提取`&lt;select&gt;`...

    itwill_java_oracle_javascript-master_java_javascript_

    这个项目可能是关于如何在Java和JavaScript环境中集成和使用Oracle数据库的一个示例或者教程。 【Java编程语言】: Java是一种广泛使用的面向对象的编程语言,以其“一次编写,到处运行”的特性闻名。它具有丰富的...

    LZ77压缩,js&java版本

    Java实现LZ77压缩算法的过程与JavaScript类似,但Java提供了更丰富的数据结构和优化的性能。主要步骤如下: 1. 使用`StringBuilder`或自定义的数据结构存储滑动窗口和压缩结果。 2. 利用`String`类的`indexOf()`方法...

    json格式与java类对象相互转换

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...

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

    JavaScript中的Object是一组数据的key-value的集合, 有点类似于Java中的HashMap, 所有这些数据都是Object里的property. 通常情况下, JavaScript中建立一个对象用"new"加上constructor function来实现. 如new Date(),...

    HTML、JavaScript与Java三合一最新培训教程

    - **集合框架**:ArrayList、HashMap等容器的使用。 - **Java Applet开发** - **Applet生命周期**:从加载到卸载的各个阶段及其对应的方法。 - **绘图基础**:使用`Graphics`类进行基本图形绘制。 - **事件监听...

    各类中文API (java、ajax、JavaScript、jQuery、mysql、oracle )

    例如,`java.io`包提供了处理输入和输出流的类,`java.net`包用于网络编程,而`java.util`包则包含了许多实用工具类,如ArrayList和HashMap。Java API的使用能够使开发者高效地构建跨平台的应用程序。 其次,AJAX...

Global site tag (gtag.js) - Google Analytics