/*
* 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) {
this.elements.push( {
key : _key,
value : _value
});
};
//刪除指定KEY的元素步清,成功返回True,失敗返回False
this.remove = 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;
};
//獲取指定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 null;
}
};
//獲取指定索引的元素(使用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的數組(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中所有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;
};
}
/**
* js實現list
*
*/
function List() {
this.value = [];
/* 添加 */
this.add = function(obj) {
return this.value.push(obj);
};
/* 大小 */
this.size = function() {
return this.value.length;
};
/* 返回指定索引的值 */
this.get = function(index) {
return this.value[index];
};
/* 刪除指定索引的值 */
this.remove = function(index) {
this.value.splice(index,1);
return this.value;
};
/* 刪除全部值 */
this.removeAll = function() {
return this.value = [];
};
/* 是否包含某個對象 */
this.constains = function(obj) {
for ( var i in this.value) {
if (obj == this.value[i]) {
return true;
} else {
continue;
}
}
return false;
};
/* 是否包含某個對象 */
this.getAll = function() {
var allInfos = '';
for ( var i in this.value) {
if(i != (value.length-1)){
allInfos += this.value[i]+",";
}else{
allInfos += this.value[i];
}
}
alert(allInfos);
return allInfos += this.value[i]+",";;
};
}
map和list的實現
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門胯杭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驯杜,“玉大人,你說我怎么就攤上這事做个「胄模” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵居暖,是天一觀的道長顽频。 經常有香客問我,道長太闺,這世上最難降的妖魔是什么糯景? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮省骂,結果婚禮上蟀淮,老公的妹妹穿的比我還像新娘。我一直安慰自己冀宴,他們只是感情好灭贷,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著略贮,像睡著了一般甚疟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逃延,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼料按!你這毒婦竟也來了奄侠?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布秋泳,位于F島的核電站潦闲,受9級特大地震影響,放射性物質發(fā)生泄漏迫皱。R本人自食惡果不足惜歉闰,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卓起。 院中可真熱鬧和敬,春花似錦、人聲如沸戏阅。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽奕筐。三九已至舱痘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間离赫,已是汗流浹背芭逝。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 輸出: Class1沒有定義明確的接口迂卢,因此Class#getInterfaces()不包括那些接口,而Class...
- Set對每個對象只接受一次碎绎,并使用自己內部的排序方法(通常,你只關心某個元素是否屬于Set,而不關心它的順序--否...
- 利用java8新特性代箭,可以用簡潔高效的代碼來實現一些數據處理。定義1個Apple對象: 添加一些測試數據: 1嗡综、分...
- 利用java8新特性,可以用簡潔高效的代碼來實現一些數據處理恤批。 定義1個Apple對象: publicclassA...