| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | //////////////////////////////////////////////////       Js Object                 /////////////////////////////////////////////////// Author: NHM TAnveer Hossain Khan (Hasan)// http://hasan.we4tech.com// mail:admin at we4tech.com// hashmap internal data objectJsObject=function(key, value) {  this._key=key;  this._value=value;}// set some methods for JsObjectJsObject.prototype.getKey=function() {  return this._key;}// get valueJsObject.prototype.getValue=function() {  return this._value;}/////////////////////////////////////////////////        Iterator                 //////////////////////////////////////////////////JsIterator=function(array) {  // set internal array  this._array=array;  // create inernal index counter  this._counter=0;    // set _hasNext value  if(array.length>0)    this._hasNext=true;  else    this._hasNext=false;}// return boolean valueJsIterator.prototype.hasNext=function() {  return this._hasNext;}// return object in next methodJsIterator.prototype.next=function() {    if(this._array.length>this._counter)    {        // get object        var rtnObj=this._array[this._counter];        // increment counter value;        this._counter++;        // check is has next true of flase        if(this._array.length>this._counter)            this._hasNext=true;        else            this._hasNext=false;        // return data        return rtnObj;    }    else    {        this._hasNext=false;    }}// remove objectJsIterator.prototype.remove=function() {    this._array.splice(this._counter,1);    if(this._array.length > this._counter)        this._hasNext=false;}/////////////////////////////////////////////////        HashMap Object           //////////////////////////////////////////////////// create JsHashMap class objectJsHashMap=function() {    // init. internal array    this._array=new Array();    // set internal counter value as 0    // this counter will keep track the current index    // of array    this._counter=0;}// create add method// put key and valueJsHashMap.prototype.put=function(key, value) {    // add new value    var newJsObj=new JsObject(key, value);    // add in internal array    this._array[this._counter]=newJsObj;    // increment the internal index counter    this._counter++;}// retrive data based on iteratorJsHashMap.prototype.iterator=function() {    // create iterator    var it=new JsIterator(this._array);    // return iterator    return it;}// retrive data based on keywordJsHashMap.prototype.get=function(key) {    // create iterator object    var it=this.iterator();      // iterate untile get success    while(it.hasNext())    {        // fetch object        var getObj=it.next();        // check is found or not        if(getObj.getKey()==key)            return getObj.getValue();    }}// remove key and objectJsHashMap.prototype.remove=function(key) {    // create iterator object    var it=this.iterator();      // iterate untile get success    while(it.hasNext())    {        // fetch object        var getObj=it.next();        // check is found or not        if(getObj.getKey()==key)            it.remove();    }}
 |