/*
          name:??? Map.js
          author:? WindDC
          date:??? 2006-10-27
          content: 本程序用JS實現類擬JAVA中MAP對像的功能
          */

          function Node(key,value){//鍵值對對象
          ??? this.key=key;
          ??? this.value=value;
          }

          function Map(){//Map類
          ??? this.nodes=new Array();
          }

          Map.prototype.put=function(key,value){//往容器中加入一個鍵值對
          ??????? for(var i=0;i<this.nodes.length;i++)
          ?????????? if(this.nodes[i].key==key){//如果鍵值已存在,則put方法為更新已有數據
          ?????????????? this.nodes[i].value=value;
          ?????????????? return;
          ?????????? }
          ??????? var node=new Node(key,value);
          ??????? this.nodes.push(node);
          ??????? return;
          }//put

          ??
          Map.prototype.get=function(key){//獲取指定鍵的值
          ??????? for(var i=0;i<this.nodes.length;i++)
          ?????????? if(this.nodes[i].key==key)
          ????????????? return this.nodes[i].value;
          ??????? return null;
          }//get
          ????
          Map.prototype.size=function(){//獲取容器中對象的個數
          ??? ?return this.nodes.length;
          }//size

          ??? ????
          Map.prototype.clear=function(){//清空容器
          ??? ?while(this.nodes.length>0)
          ??? ??? this.nodes.pop();?????
          }//clear
          ?
          Map.prototype.remove=function(key){//刪除指定值
          ??? ?for(var i=0;i<this.nodes.length;i++)
          ??? ??? if(this.nodes[i].key==key){
          ??? ??? ?? if(i>0)
          ??? ????????? var nodes1=this.nodes.concat(this.nodes.slice(0,i-1),this.nodes.slice(i+1));
          ??? ?????? else//刪除的是第一個元素
          ??? ?????? ? var nodes1=nodes.slice(1);
          ??? ?????? this.nodes=nodes1;

          ??? ??? }
          }//remove

          ???
          Map.prototype.isEmpty=function(){//是否為空
          ??? ?if(this.nodes.length==0)
          ??? ?? return true;
          ??? ?else
          ??? ?? return false;
          }//isEmpty
          ???
          Map.prototype.toString=function(){
          ???? var str="[";
          ???? for(var i=0;i<this.nodes.length;i++){
          ??????? if(i<this.nodes.length-1)
          ?????????? str=str+this.nodes[i].key+",";
          ?????? else
          ?????????? str=str+this.nodes[i].key;????
          ?? ?}
          ??? str=str+"]";
          ????return str;
          }

          posted on 2006-10-27 20:06 WindDC 閱讀(320) 評論(0)  編輯  收藏 所屬分類: JS腳本

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 潮州市| 奎屯市| 温泉县| 永年县| 赤水市| 浦城县| 渑池县| 莫力| 青浦区| 德化县| 宁阳县| 钟祥市| 延津县| 连城县| 梓潼县| 应城市| 孙吴县| 高平市| 武威市| 阳山县| 牡丹江市| 抚州市| 河东区| 瑞丽市| 沂源县| 宾川县| 江陵县| 天祝| 胶州市| 英超| 济阳县| 泽普县| 东辽县| 仙桃市| 连山| 苏尼特右旗| 汾西县| 双牌县| 故城县| 原阳县| 德兴市|