时间:2016.04.20 发布人:coolainc
已解决问题
谷歌coolainc用户在2016.04.20提交了关于“
歌诗图在J**aScript中构建ArrayList示例代码”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-27T08:58:01。希望大家能够帮助她。
详细问题描述及疑问:期待您的答案,希望你能感受到,我最真诚的谢意
!
希望以下的回答,能够帮助你。
第1个回答
用户名:lovel料字执殖衡往ylkt
前面我们介绍了J**aScriptArray的API,在J**aScript中数组本身就非常强大,可以存储任意类型,且长度自动扩容,又提供遍历,过滤,等多个操作数来自组的方法。
简直完爆J**a的的数组(长度固定,单一类型)。而J**a中的集合类就是弥补数组不足,击纸足采识其底层大多使用Object[]存储,只是提供动态扩容的策略,当然JDK的API之丰富,是其他语言难以匹敌的。
但是不妨碍我对Ja技排掌va、J**aScript的喜爱。
问答J**a就像一个中年老妇女,你总能在JDK中看到她的风韵犹存,在构建大型分布式系统,就能体现出她的谆谆教导;
而J**aScript就是含苞待放的少女,每一次绽放,就会激起你内心的涟漪,得小心调教,才能为你所用。
好吧原谅我不恰当的比喻,来点干货。
/***@class
ArrayList*@description*@ti胶门全me2014-09-1621:59*@authorStarZou**/functi方边映很国生onArrayLis些光露县呼群表洲t(arr){this._elementData=arr||[];}v尽该听朝理较互期式ararrayL史istPrototype={'_arrayPrototype':Array.prototy汽pe,'_getData':function(){returnthis._elementData;}马,'size':function(){returnthis._getData().length;},'isEmpty':function(同面燃六){returnt精苗难衣书剂频孔his.size()===0;},'contains':function(obj){returnth起弦犯艺方is.indexOf(obj)>-1;},'indexOf':function(概异现歌达电歌上地右传obj){vari,data=this._getData(),length=data.length;for(i=0;谓白政民冷再套甚i<length;i++){if(obj===data[i]){returni;}}return-1;},'lastIndexOf':function(obj){vari,data=this._getData(),length=data.length;fo吧省形r(i=length-1;i>-1;i--){if(obj===预管data[i]){returni;}}return-1;},'爱沿有电是神继条get':function(index){returnthis._getData()[index];},'set':function(index,element){this._getData()[index]=element;},'add':function(index,element){if(element){this.set(index,element);}else{returnthis._getData().push(index);}},'remove':function(index){varoldValue=this._getData()[index];this._getData()[index]=**ll;returnoldValue;},'clear':function(){this._getData().length=0;},'addAll':function(index,array){if(array){this._getData().splice(index,0,array);}else{this._arrayPrototype.push.apply(this._getData(),index);}}};ArrayList.prototype=arrayListPrototype;//Test代码vararr=newArrayList([3,6,5,'xyz','foo','xyz']);console.log(arr.contains('xyz'));console.log(arr.indexOf('xyz'));console.log(arr.lastIndexOf('xyz'));console.log(arr.get(2));arr.addAll([1,2,3]);console.log(arr);上面代码实现了一部分,还有优化地方,
以后有时间写J**aScript模拟实现Tree,Stack,Queue,Map等**结构的类。