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

本文介绍了一种简易JS集合类实现,包括常用方法如get、add、indexOf、contain、removeAt、removeObj、toArray和toString。这些方法用于处理业务需求中的复杂任务,旨在提供一种简便且可扩展的解决方案,方便开发者在后期不断完善和优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天业务上的需求,前台需要类似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方法优快云
List.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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值