`

javascript 封装的仿java容器Map\List类

阅读更多

这只是实现了java中List和Map 中的部分方法,以后要用到其他方法会在添加

function HashMap(){
    this.size=0;
    this.map=new Object();
}

HashMap.prototype.put=function(key,value){
    if(!this.map[key]){
        this.size++;
    }
    this.map[key]=value;
};
HashMap.prototype.get=function(key){
    return this.isKey(key)?this.map[key]:null;
};
HashMap.prototype.isKey=function(key){
    return (key in this.map);
};
HashMap.prototype.remove=function(key){
  if( this.isKey(key) && (delete this.map[key])){  
        this.size--;  
  }  
};

HashMap.prototype.size=function(){
    return this.size;
};

HashMap.prototype.find=function(_callback){
    for(var _key in this.map){
        _callback.call(this,_key,this.map[_key]);
    }
};
//List

function ArrayList(){
	this.size=0;
    this.list=new Object();
};
ArrayList.prototype.add=function(obj){
	this.list[this.size++];
	return this.size;
};
ArrayList.prototype.remove=function(index){
	if(this.size>index){
		delete this.list[index--];
		return this.size--;
	}
	return -1;
};
ArrayList.prototype.size=function(){
	return this.size;
};
ArrayList.prototype.get=function(index){
	return this.size>index?this.list[index]:null;
};
ArrayList.prototype.clear=function(){
	this.list=null;
};
ArrayList.prototype.contains=function(obj){
	return this.indexOf(obj)>=0?true:false;
};
ArrayList.prototype.indexOf=function(obj){
	for(var i=0;i<this.size;i++){
		if(this.list[i]==obj){
			return i;
		}
	}
	return -1;
};
ArrayList.prototype.isEmpty=function(){
	return this.size<0?true:false;
};


function HashSet(){
	this.size=0;
    this.set=new Object();
};
HashSet.prototype.add=function(obj){
	this.indexOf(obj)<0?this.set[this.size++]=obj:null;
	return this.size;
};
HashSet.prototype.remove=function(index){
	if(this.size>index){
		delete this.set[index--];
		return this.size--;
	}
	return -1;
};
HashSet.prototype.size=function(){
	return this.size;
};
HashSet.prototype.get=function(index){
	return this.size>index?this.set[index]:null;
};
HashSet.prototype.clear=function(){
	this.set=null;
};
HashSet.prototype.contains=function(obj){
	return this.indexOf(obj)>=0?true:false;
};
HashSet.prototype.indexOf=function(obj){
	for(var i=0;i<this.size;i++){
		if(this.set[i]==obj){
			return i;
		}
	}
	return -1;
};
HashSet.prototype.isEmpty=function(){
	return this.size<0?true:false;
};
0
0
分享到:
评论

相关推荐

    javaScript和java参考手册

    Java集合框架包括List、Set、Map等接口和实现,为处理对象数组提供了强大支持。此外,Java SE(标准版)和Java EE(企业版)还提供了丰富的API,如Swing用于桌面应用,Spring框架用于企业级开发。 对于初学者,理解...

    读取properties文件返回map

    在Java编程中,`...通过`Properties`类(Java)或第三方库(JavaScript),可以轻松地加载和解析这些文件,将内容转换为方便操作的数据结构。了解这个过程对于开发Java或JavaScript应用来说是非常基础且重要的。

    JAVA-JSON工具转换类

    `JsonUtil.java`看起来是一个自定义的工具类,很可能包含了对`json-lib`和`ezmorph`的封装,提供了简洁易用的API供开发者进行JSON操作。可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`...

    json与bean,array,list,map,简单类型之间的封装、解析

    在Java编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。Gson是Google提供的一个Java库,能够方便地将Java对象转换为JSON字符串,同时也能够将JSON文本解析成等效的...

    Spring MVC不能直接接收list类型参数的问题

    首先定义一个 VO (Value Object) 类,其中包含 `List&lt;String&gt;` 类型的属性。 **VO 定义示例**: ```java public class ParamVo { private List&lt;String&gt; areaList; public List&lt;String&gt; getAreaList() { return ...

    IT专家在JAVA中封装JSONUtils工具类及使用 (转).docx

    在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端数据传输。为了方便地处理JSON数据,开发者通常会封装一个工具类,如本例中的`JSONUtils`。这个工具类包含了一系列...

    爬虫demo、List封装、extjs

    3. 类型转换:如何将`List&lt;Map&gt;`转换为`List&lt;Bean&gt;`,理解Java Bean的概念及其在数据封装中的作用。 4. EXT JS的使用:学习如何创建EXT JS组件,构建交互式的Web页面。 5. HTML解析库的使用,如HTMLParser,用于解析...

    Java-learning-courseware.rar_javascript_learning

    3. **集合框架**:List、Set、Queue和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类的使用。 4. **异常处理**:理解和使用try-catch语句块来捕获和处理程序运行时可能出现的错误。 5. **输入/输出...

    java郝斌 课件

    4. **集合框架**:Java集合框架是存储和操作数据的重要工具,包括List、Set、Map等接口和ArrayList、LinkedList、HashSet、HashMap等实现类。 5. **IO流**:Java的输入/输出系统允许程序读写数据,无论是文件系统...

    JAVA8API-官方文档下载-中文版

    2. **Nashorn JavaScript引擎**: 提供了在Java中执行JavaScript代码的能力,便于混合编程。 3. **并行数组操作**: `java.util.parallel`包提供了并行版本的数组操作,如`Arrays.parallelSort()`。 4. **集合工厂...

    软件开发常用词汇简表,英语不好的,可以多读读 写写 java、javascript、

    在Java中,public是访问修饰符,表示该成员变量或成员方法可以被所有类访问。 2. Static:静止的、静态变量 在Java中,static是修饰符,表示该成员变量或成员方法属于类本身,而不是实例。 3. Void:无效的、空...

    Json-RPC_for_Java使用说明

    - **Map**:`java.util.Map`转化为JavaScript的对象字面量,支持属性访问但不包括`function`类型的属性。 - **List**:`java.util.List`转化为数组,允许访问元素和调用列表中对象的方法。 - **Null**:表示为...

    java处理JSON格式数据的通用类

    【Java处理JSON格式数据的通用类】是一种在Java中处理JSON数据的标准方法,它能够方便地接收和返回JSON数据,解决开发过程中与JSON交互的问题。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛...

    Java数据库通用操作类.doc

    这样的通用数据库操作类使得在Java项目中进行数据库操作变得简单且易于维护,通过封装常见的数据库操作,减少了重复代码,提高了代码的复用性。不过,实际使用时,还需要根据具体的数据库类型(如MySQL、Oracle、SQL...

    Java API 8

    Optional是一个容器类,用于避免空指针异常。它封装了一个可能为null的值,提供了一套安全访问和检查的方法,如isPresent()、get()、orElse()等。 5. **日期时间API**: Java 8引入了新的日期和时间API(java....

    java SE.docx

    17. **集合框架**:Java集合框架包括List、Set和Map接口以及它们的实现类,如ArrayList、LinkedList、HashSet、HashMap等,用于存储和操作对象。 18. **多线程**:Java内置了对多线程的支持,可以通过实现Runnable...

    java学习体系

    2. Java集合框架:Java的集合框架提供了一套性能优化的数据结构,如List、Set、Map等接口及其实现类。学习这些框架中的类库如java.util.ArrayList、java.util.HashMap等是必不可少的。 3. Java I/O和NIO:输入输出...

    一个简单的JavaScript函数式编程教程JAVA语言

    首先,定义一个`FeedWrapper`类来封装原始的Feed数据,并增加一个布尔类型的`marked`属性。 ```javascript function FeedWrapper(feed, marked) { this.feed = feed; this.marked = marked; } FeedWrapper....

    Java 8 实战教程整理

    7. Nashorn JavaScript引擎:Java 8包含了Nashorn JavaScript引擎,允许Java代码直接运行JavaScript,实现了Java与JavaScript的交互。 8. 类型注解:Java 8增强了类型注解的使用范围,可以在更多的地方使用注解,如...

    JAVA语言入门(CHM).rar

    Java集合框架包括List、Set、Queue和Map等接口以及ArrayList、LinkedList、HashSet、HashMap等实现类,它们提供了存储和操作对象的高效工具。多线程是Java的一大特色,可以同时执行多个任务,提高程序效率。Java的I/...

Global site tag (gtag.js) - Google Analytics