日期:2014-05-16  浏览次数:20376 次

javascript封装的类似java List类
function List(){
	this.init();
};
//初始化列表
List.prototype.init = function(){
	this.array = new Array();
};
//列表的大小
List.prototype.size = function(){
	return this.array.length;
};
//向列表添加一个元素
List.prototype.add = function(element){
	this.array.push(element); 
};
//批量添加元素到列表
List.prototype.addAll = function(list){
	if(list && isList(list)){
		var size = list.size();
		var element;
		for(var i = 0;i < size;i++){
			element = list.get(i);
			this.array.push(element);
		}
	}
};
//转化成数组
List.prototype.toArray = function(){
	return this.array;
};
//移除数组(根据下标)
List.prototype.remove = function(index){
	if(index >= this.size()){
		index = this.size() - 1;
	}
	this.array.splice(index,1);
};
List.prototype.get = function(index){
	return this.array[index];
};
//清除列表原色
List.prototype.clear = function(){
	this.init();
};
//是否为空列表
List.prototype.isEmpty = function(){
	return this.size() === 0;
};
//是否包含某个元素
List.prototype.contains = function(element){
	return this.indexOf(element) >= 0;
};
//判断列表的某个元素的第一个元素在列表的下标位置
//-1则表示没有这个元素
List.prototype.indexOf = function(element){
	var size = this.size();
	if(null === element){
		for(var i = 0;i < size;i++){
			if(this.array[i] === null){
				return i;
			}
		}
	}else{
		for(var i = 0;i < size;i++){
			if(this.array[i] === element){
				return i;
			}
		}
	}
	return -1;
};
var isList = function(list){
	return list instanceof List;
};

用法如下:

var list = new List();
		list.add("lynn");
		list.add("min");
		var list1 = new List();
		list1.add(1);
		list1.add("liu");
		list.addAll(list1);
		//list.clear();
		alert(list.contains("min1"));
		var size = list.size();
		for(var i = 0;i < size;i++){
			//alert(list.get(i));
		}