/*
* MAP对象,实现MAP功能
*
* 接口:
* size() 获取MAP元素个数
* isEmpty() 判断MAP是否为空
* clear() 删除MAP所有元素
* put(key, value) 向MAP中增加元素(key, value)
* remove(key) 删除指定KEY的元素,成功返回True,失败返回False
* get(key) 获取指定KEY的元素值VALUE,失败返回NULL
* element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
* containsKey(key) 判断MAP中是否含有指定KEY的元素
* containsValue(value) 判断MAP中是否含有指定VALUE的元素
* values() 获取MAP中所有VALUE的数组(ARRAY)
* keys() 获取MAP中所有KEY的数组(ARRAY)
*
* 例子:
* var map = new Map();
*
* map.put("key", "value");
* var val = map.get("key")
* ……
*
*/
function Map() {
this.elements = new Array();
//获取MAP元素个数
this.size = function() {
return this.elements.length;
};
//判断MAP是否为空
this.isEmpty = function() {
return (this.elements.length < 1);
};
//删除MAP所有元素
this.clear = function() {
this.elements = new Array();
};
//向MAP中增加元素(key, value)
this.put = function(_key, _value) {
var flag = true;
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
flag = false;
}
}
if(flag){
this.elements.push( {
key : _key,
value : _value
});
}
};
//删除指定KEY的元素,成功返回True,失败返回False
this.removeByKey = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
this.elements.splice(i, 1);
return true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
//删除指定VALUE的元素,成功返回True,失败返回False
this.removeByValue = function(_value) {//removeByValueAndKey
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
this.elements.splice(i, 1);
return true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
//删除指定VALUE的元素,成功返回True,失败返回False
this.removeByValueAndKey = function(_key,_value) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value && this.elements[i].key == _key) {
this.elements.splice(i, 1);
return true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
//获取指定KEY的元素值VALUE,失败返回NULL
this.get = function(_key) {
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
return this.elements[i].value;
}
}
} catch (e) {
return false;
}
return false;
};
//获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
this.element = function(_index) {
if (_index < 0 || _index >= this.elements.length) {
return null;
}
return this.elements[_index];
};
//判断MAP中是否含有指定KEY的元素
this.containsKey = function(_key) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
//判断MAP中是否含有指定VALUE的元素
this.containsValue = function(_value) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
//判断MAP中是否含有指定VALUE的元素
this.containsObj = function(_key,_value) {
var bln = false;
try {
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].value == _value && this.elements[i].key == _key) {
bln = true;
}
}
} catch (e) {
bln = false;
}
return bln;
};
//获取MAP中所有VALUE的数组(ARRAY)
this.values = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].value);
}
return arr;
};
//获取MAP中所有VALUE的数组(ARRAY)
this.valuesByKey = function(_key) {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
if (this.elements[i].key == _key) {
arr.push(this.elements[i].value);
}
}
return arr;
};
//获取MAP中所有KEY的数组(ARRAY)
this.keys = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].key);
}
return arr;
};
//获取key通过value
this.keysByValue = function(_value) {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
if(_value == this.elements[i].value){
arr.push(this.elements[i].key);
}
}
return arr;
};
//获取MAP中所有KEY的数组(ARRAY)
this.keysRemoveDuplicate = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
var flag = true;
for(var j=0;j<arr.length;j++){
if(arr[j] == this.elements[i].key){
flag = false;
break;
}
}
if(flag){
arr.push(this.elements[i].key);
}
}
return arr;
};
}
分享到:
相关推荐
由于原本把需要的数据存放到cookie中,但是cookie不能的key不能自动转译中文,出现乱码,后台服务器报错:Control character in cookie value or attribute.所以改为自定义map集合
**Map集合的特性** 1. **键值对存储**:`Map`允许存储任意类型的键值对,包括对象、基本类型、甚至其他`Map`实例。 2. **键的唯一性**:在`Map`中,每个键都是唯一的,不会像对象那样因同名属性覆盖问题。 3. **...
在JavaScript中,Map是一种对象类型,用于存储键值对集合。然而,在早期的...对于学习如何在JavaScript中操作和管理数据集,了解这样的自定义Map实现可以增强开发者的能力,并且可以用来构建更复杂的数据结构。
`object.js` 文件可能涉及到的是JavaScript对象的操作,虽然不是直接与Array或Map相关,但它们在JavaScript中是重要的数据结构。JavaScript对象是一种键值对的集合,键通常是字符串,但也可以是符号(Symbol)。与...
Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。 这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容! ...
这篇文档详细介绍了如何使用JavaScript实现一个自定义的Map集合工具类,包括构造函数、各种操作方法,如查找、删除、判断等,并提供了具体的代码示例。下面将详细解释这些知识点。 首先,定义了构造函数`varMap`,...
在JavaScript中,尽管原生没有提供与Java完全相同的Map对象,但可以通过自定义对象或使用ES6提供的Map数据结构来实现类似的功能。本篇将详细探讨如何在JavaScript中模仿Java的Map对象,以及ES6 Map的数据结构和用法...
Map是Java集合框架中的一种数据结构,用于存储键值对。然而,在实际应用中,我们经常需要对Map中的key或value进行排序,以满足特定的业务需求。 对Map中的key进行排序 对Map中的key进行排序可以使用TreeMap来实现...
在JavaScript中,尽管原生没有提供与Java完全相同的Map集合,但可以通过自定义对象来模拟实现Map的功能。这里我们将详细探讨如何用JavaScript模仿Java的Map集合,并了解其基本操作。 首先,我们需要创建一个名为`...
在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理和Ajax交互。Ajax(Asynchronous JavaScript and XML)技术允许我们在不刷新整个页面的情况下与服务器进行数据交换,极大地提升...
2. `BeanUtils.java`: 这可能是自定义的工具类,用于Java Bean对象的操作,可能包含了转换Map到List的实用方法。 3. `TbPowerGroupBeanServiceImpl.java`: 这可能是服务层实现类,处理业务逻辑,可能调用了`...
"scripts_modules"是一个专为JavaScript自定义函数集合命名的目录或文件,通常用来组织和管理项目中的各种功能模块。在这个集合中,开发者会将具有特定功能的代码段封装成独立的函数,以便于复用和维护。 在...
在OpenLayers这个强大的开源JavaScript库中,自定义工具条是一个常用功能,允许用户根据项目需求构建个性化的交互界面。OpenLayers主要用于创建交互式的地图应用,而工具条则为用户提供了一系列操作地图的功能按钮,...
14. **函数式编程**:高阶函数(如`map()`, `filter()`, `reduce()`)和函数组合是JavaScript中实现函数式编程的关键。 15. **错误处理**:`try...catch`结构用于捕获和处理运行时错误,`throw`语句用于抛出自定义...
在Vue.js框架中,Array数组和Map对象是经常用来存储数据的两种结构,尤其是在处理动态数据集合时。Element UI是基于Vue 2.0开发的一套基于Vue的组件库,提供了丰富的界面组件。在后台管理系统的开发中,经常需要动态...
在AMap2DDemo中,开发者将利用Java的面向对象特性、异常处理、集合类等来组织代码,实现地图功能的交互和数据管理。 4. Android SDK集成: 高德地图SDK需要集成到Android工程中才能使用。这涉及到在项目的build....
在Java中,`java.util.Map`接口是键值对的集合,其中每个键都是唯一的。Gson库提供了一个`Gson.fromJson()`方法,能够将JSON字符串解析成一个Map对象。这个过程涉及以下几个步骤: 1. **创建Gson对象**:首先,我们...
虽然JavaScript原生的`Map`对象提供了类似的功能,但在某些场景下,开发者可能需要自定义HashMap来满足特定的需求,例如优化性能或者实现特定的算法。本篇文章将深入探讨如何在JavaScript中实现HashMap以及如何进行...
这个资源包涵盖了JavaScript的基本语法、高级语法以及自定义函数的使用,对于学习和提升JavaScript技能非常有帮助。 **一、JavaScript基本语法** 1. **变量声明**:在JavaScript中,我们可以使用`var`、`let`或`...
"对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻量级数据交换格式,而Map则是一种通用的数据结构,用于存储键值对。下面我们将深入...