`

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

 
阅读更多

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


分享到:
评论

相关推荐

    list 假分页的demo

    除了list,还可以使用数组、集合等数据结构实现假分页。在Web开发中,前端也可以实现类似功能,通过JavaScript在客户端进行分页,减轻服务器负担。 总之,"list假分页的demo"展示了如何在内存中利用list实现分页...

    java面试题集合java面试题集合.doc

    Java面试题集合通常涵盖了许多核心概念和技术,是评估求职者技能和知识深度的重要方式。以下是一些面试中常出现的Java相关知识点: 1. **逗号分隔字符串转数组**: - 可以使用`String.split()`方法,传入逗号作为...

    基于java球迷社区的设计与实现

    Java的集合框架,如List和Set,可以帮助管理这些关系。 6. **搜索功能**:利用Elasticsearch这样的全文搜索引擎,可以提供高效、智能的搜索体验,帮助用户快速找到感兴趣的话题。 7. **系统性能优化**:为了保证高...

    java开源包4

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

    开发常用帮助文档(CSS、JavaScript、JavaAPI。。。。)

    这些文档为开发者提供了清晰的指南,以理解和使用各种技术,如CSS、JavaScript和Java API等。以下是关于这些关键开发工具的详细知识点: 1. CSS (层叠样式表): - CSS是用于描述HTML或XML(包括SVG、MathML等各种...

    Java版链表模板类

    `CList`可能实现了`java.util.List`接口,这样可以使用如`add()`, `remove()`, `get()`, `size()`等标准的集合操作。此外,为了实现循环链表特有的功能,可能会有自定义的方法,如`startTraversal()`用于开始遍历,...

    Java编程课程-Java核心基础

    4. **集合框架**:Java集合框架是存储和管理对象的重要工具,包括List、Set、Queue、Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等,了解它们的特点和使用场景至关重要。 5. **输入/输出(I/O)...

    Java 商城项目 半成品

    1. **Java基础**:这是项目的基石,包括面向对象编程概念(类、对象、继承、多态、封装)、异常处理、集合框架(List、Set、Map)以及Java IO流。 2. **Servlet与JSP**:在Java Web开发中,Servlet用于处理客户端...

    java-任何类型转换成json数据格式

    在Java应用中,经常会遇到需要将Java对象或集合等数据结构转换为JSON字符串的需求。例如,在与Web服务交互时,通常会将Java对象序列化为JSON字符串以便于传输。 #### 二、核心类与方法介绍 在所提供的代码片段中,...

    Java学习路线通常分为几个阶段,从基础到进阶,再到高级和实战应用 以下是一个较为全面的Java学习路线规划: 一、Java基

    学习数组、集合(如List、Set、Map等)等数据结构的使用。 掌握异常处理机制,理解try-catch-finally的使用场景。 深入学习多线程与并发编程,理解线程的基本概念、线程同步与通信等。 IO与网络编程 学习文件IO和...

    JDK1.8.0下载版本适合neo4j3.4

    虽然此功能在后续版本中被弃用,但在3.4时期,Nashorn可以用于 Neo4j的脚本执行或集成。 6. **Date和Time API增强**:Java 8对日期和时间API进行了重大改进,提供了`java.time`包,包括`LocalDate`, `LocalTime`, `...

    java1.5api

    JavaScript API虽然在此描述中一同提及,但它们是两个不同的技术领域,这里主要讨论Java 1.5 API的相关知识点。 1. 泛型(Generics):Java 1.5引入了泛型,允许在类、接口和方法声明中使用类型参数,增强了类型...

    Java软件开发工程师培训课程体系.pdf

    2. Java集合框架:Java集合框架(Collections Framework)是Java API的一部分,包括List、Set、Queue、Map等接口和实现。培训课程会教授如何高效使用Vector、ArrayList、LinkedList、HashMap、HashSet等集合来管理...

    The Java Tutorial Fourth Edition

    - **Applet**:Java小应用程序,可以在浏览器中运行,但现代Web开发更多使用JavaScript等技术。 10. **Java Development Kit (JDK)和集成开发环境(IDE)** - **JDK**:包含Java编译器javac、JVM和各种开发工具。 ...

    达内java基础教程文档前半部,文件太大,后续还有后半部

    8. **集合框架**:List、Set和Map接口的介绍,以及ArrayList、LinkedList、HashSet、HashMap等常见实现类的使用方法。 9. **输入/输出流**:了解IO流的概念,包括文件操作、字节流和字符流,以及缓冲流的使用。 10...

    毕向东Java SE视频教程整理笔记

    - **集合框架**:Java集合框架提供了多种用于存储和操作数据的接口和实现,包括List、Set、Map等。了解集合框架的原理及其使用方式有助于更好地组织和管理数据。 #### 第八章:IO流 - **IO流基础**:Java提供了...

    良葛格Java JDK 5.0学习笔记

    4. **集合框架**:Java集合框架是处理对象集合的重要工具,包括List、Set、Map等接口及其实现类。JDK 5.0对集合框架进行了优化,如ArrayList、LinkedList、HashSet、HashMap等,以及泛型的引入,使得集合操作更加...

    毕业设计 计算机专业-Java 信息办公简易java开源订销管理系统-javainfo

    同时,可能涉及到Java集合框架(如List、Set、Map等)和异常处理。 2. **MVC设计模式**:模型-视图-控制器模式是Web应用开发中常见的架构模式,用于分离业务逻辑、数据处理和用户界面。 3. **Spring框架**:Spring...

    java开源包11

    WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...

Global site tag (gtag.js) - Google Analytics