`

模拟java 中map的功能封装一个有序的map

阅读更多

map模型:

/**
 * Project Name:psim
 * File Name:MapModel.java
 * Package Name:com.psim.bean
 * Date:2014年5月16日下午12:35:37
 * Copyright (c) 2014, chenzhou1025@126.com All Rights Reserved.
 *
 */

package com.psim.bean;

/**
 * ClassName:MapModel <br/>
 * Function: map模型 <br/>
 * Reason: TODO ADD REASON. <br/>
 * Date: 2014年5月16日 下午12:35:37 <br/>
 * 
 * @author Administrator
 * @version
 * @since JDK 1.6
 * @see
 */
public class MapModel<K,V> {
	
	private K key;
	private V value;
	
	public MapModel(K key,V value){
		this.key = key;
		this.value = value;
	}

	public K getKey() {
		return key;
	}

	public void setKey(K key) {
		this.key = key;
	}

	public V getValue() {
		return value;
	}

	public void setValue(V value) {
		this.value = value;
	}
}

 模拟Map的工具类,

/**
 * Project Name:psim
 * File Name:MapModelLink.java
 * Package Name:com.psim.bean
 * Date:2014年5月16日下午1:07:07
 * Copyright (c) 2014, chenzhou1025@126.com All Rights Reserved.
 *
*/

package com.psim.bean;

import java.util.ArrayList;
import java.util.List;

/**
 * ClassName:MapModelLink <br/>
 * Function: 自定义Map表,是有序的 <br/>
 * Date:     2014年5月16日 下午1:07:07 <br/>
 * @author   Administrator
 * @since    JDK 1.6
 * @see 	 
 */
public class MapModelLink<K,V> {
	
	private List<MapModel> mapModelList = new ArrayList<MapModel>();
	
	//设值
	public void put(K key,V value){
		mapModelList.add(new MapModel<K,V>(key, value));
	}
	
	//取值
	public V get(K key){
		return null!=this.getMapModel(key)?this.getMapModel(key).getValue():null;
	}
	
	//移除
	public boolean remove(K key){
		MapModel<K,V> mapModel = this.getMapModel(key);
		if (null!=mapModel) {
			return mapModelList.remove(mapModel);
		}else{
			return false;
		}
	}
	
	// 得到长度
	public int size() {
		return mapModelList.size();
	}
	
	//得到对应的模型
	public MapModel<K,V> getMapModel(K key){
		if (mapModelList.size()>0) {
			for (MapModel<K,V> mapModel : mapModelList) {
                 if(mapModel.getKey().equals(key)){
                	 return mapModel;
                 }
			}
		}
		return null;
	}

	public List<MapModel> getMapModelList() {
		return mapModelList;
	}

	
}

  

分享到:
评论

相关推荐

    使用Java集合模拟JSTL包中的Result接口功能

    如果不想导包,那么,我们需要自己写,于是,本人使用Java的集合框架来完成模拟jstl的Result接口的功能--返回一个Map对象,然后通过表的字段名作为键来从Map对象中取所对应的记录集合list. 学习对象:所有学习Java...

    模拟实现购物车功能

    //创建一个map对象,用来保存商品,key为商品,value为商品的数量 private Map, Integer&gt; map = new HashMap, Integer&gt;(); /** * 添加商品到购物车方法 * @param id 商品编号 * @param quantity 商品数量 *...

    java模拟斗地主洗牌发牌-可拓展

    1)、将一副牌封装进入Map集合中,键为0-53的Integer数据,值为字符串 2)、洗牌:将Map集合的键放在List中,在使用Collections.shuffle()进行洗牌 3)、发牌:发给三个人,就是三个List加一个底牌的List 4)、看...

    Java_JDBC由浅入深

    第十四节 编写一个简单的数据库连接池 74 14.1 为什么要使用数据库连接池 74 14.2 数据库连接池雏形 74 14.2 数据库连接池优化 77 14.2.1 对线程池加锁 77 14.2.2 连接不够用时抛出异常 77 14.3 数据库连接池之代理...

    java范例开发大全源代码

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12 ...

    java范例开发大全

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    Java范例开发大全 (源程序)

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12  实例5...

    Java范例开发大全(全书源程序)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑...

    java范例开发大全(pdf&源码)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    Java学习笔记-个人整理的

    {2.8}框架中移动的小球}{59}{section.2.8} {2.9}抽象与接口}{59}{section.2.9} {2.10}访问控制}{60}{section.2.10} {2.10.1}类的属性}{60}{subsection.2.10.1} {2.10.2}类的方法}{61}{subsection.2.10.2} {...

    支持多数据库的ORM框架ef-orm.zip

    表结构元数据的API也向用户开放,同时支持在使用过程中,灵活调整映射关系,因此用户可以用API动态的创建表结构的模型,从而实现各种动态类型和表的映射(例如POJO中包含一个Map,用于映射各种动态扩展的字段)企业...

    如何学习ACM,看后受益匪浅

    C++的另一个支持来源于标准模版库(STL),库中提供的对于基本数据结构的统一接口操作和基本算法的实现可以缩减我们编写代码的长度,这可以节省一些时间。但是,与此相对的,使用STL要在效率上做出一些牺牲,对于...

Global site tag (gtag.js) - Google Analytics