用javascript实现java中的集合list(后续不断完善优化)

来源:互联网 发布:淘宝店铺电脑装修教程 编辑:程序博客网 时间:2024/05/15 05:57

今天业务上的需求,前台需要类似java集合list或者set那样的工具或者类型来处理一个比价复杂的业务,js中是没有这种集合工具的,用数组吧考虑了下还是长久下,写个类似的简单工具,做成公共js,然后后期不断完善和优化,以后用起来就很方便了,这里就记录和分享下我的代码,确切的说很不完善,和java中ArrayList功能还差一些,一些地方也待优化,不过可以临时救急用,网上搜到一两篇就,不过还有很多bug,我下边的js代码都是测试过的,基本都可以正常使用,很多功能如构造方法、非法数据处理及异常的处理等有待完善。

后期如有时间的话,再完善和优化原有的基础上,会用js实现java中的LinkedList,HashSet,HashMap等类似集合的工具类,以方便开发中使用,声明下,时间仓促,功能简单,如代码中处理不得当的地方,十分恳请您留言,必有重谢!

/**定义一个类似java中List集合的对象并添加对应常用方法*功能比较简易,远不如真正List强大而高效,暂目前满足几个需求即可,待后续完善优化*@author 陈磊兴*@date 2015-09-10*///List定义function List(){  this.table=new Array();}//get方法List.prototype.get=function(i){  return this.table[i];}//add方法List.prototype.add=function(o){this.table.push(o);}//indexOf方法,无返回-1,如有首次出现的元素索引List.prototype.indexOf=function(o){var c=-1;for(var i=0;i<this.table.length;i++){if(this.table[i]==o){c=i;break;}}return c;}//contain方法List.prototype.contain=function(o){var e=false;for(var i=0;i<this.table.length;i++){if(this.table[i]==o){e=true;break;}}return e;}//removeAt方法根据索引,返回被移除的元素List.prototype.removeAt=function(i){if(this.table.length==0 || i<0 || i>(this.table.length-1)){return ;}var t=[];for(var h=0;h<i;h++){t.push(this.table[h]);}for(var f=i+1;f<this.table.length;f++){t.push(this.table[f]);}var e=this.table[i];this.table=t;return e;}//removeObj方法移除首次出现的指定元素返回true或false,如果有List.prototype.removeObj=function(o){var i=this.indexOf(o);var s=false;if(i!=-1){this.removeAt(i);s=true;}return s;}//toArray方法CSDNList.prototype.toArray=function(){return this.table;}//toString方法List.prototype.toString=function(){var s="";for(var i=0;i<this.table.length;i++){s+=this.table[i].toString();if(i!=this.table.length-1){s+=',';}}return s;}//size方法List.prototype.size=function(){return this.table.length;}

 

var list=new List(),然后直接在线测试运行一下http://runjs.cn/code


 

 

1 0
原创粉丝点击