android hashmap key 类型,利用key,value形式储存对象的类(Map,HashMap)

模仿java的Map类的功能写,也是有了Map接口和实现类HashMap,现在把它贴出来让大家共享一下这是接口 :Map

/**

* @(#)Map.as

*

* @author soda E-mail:junaisy@163.com

* @version 1.0

*

Copyright (C), 2007 soda.C

*

This program is protected by copyright laws.

*

Date:2006.6

*

*

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值

*

它的实现类有以下的类:

* @see HashMap

* @author soda(弃天笑)

*/

interface mx.soda.util.Map

{

/**

* 将指定的值与此映射中的指定键相关联.

* @param key 与指定值相关联的键.

* @param value 与指定键相关联的值.

*/

public function put(key:String,value:Object):Void;

/**

* 返回此映射中映射到指定键的值.

* @param key 与指定值相关联的键.

* @return 此映射中映射到指定值的键,如果此映射不包含该键的映射关系,则返回 null.

*/

public function get(key:String):Object;

/**

* 从此映射中移除所有映射关系

*/

public function clear():Void;

/**

* 如果存在此键的映射关系,则将其从映射中移除

* @param key 从映射中移除其映射关系的键

* @return 以前与指定键相关联的值,如果没有该键的映射关系,则返回 null

*/

public function remove(key:String):Object;

/**

* 返回此映射中的键-值映射关系数.

* @return 此映射中的键-值映射关系的个数.

*/

public function size():Number;

/**

* 如果此映射未包含键-值映射关系,则返回 true.

* @return 如果此映射未包含键-值映射关系,则返回 true.

*/

public function isEmpty():Boolean;

/**

* 如果此映射包含指定键的映射关系,则返回 true.

* @param key 测试在此映射中是否存在的键.

* @return 如果此映射包含指定键的映射关系,则返回 true.

*/

public function containsKey(key:String):Boolean;

/**

* 如果该映射将一个或多个键映射到指定值,则返回 true.

* @param key 测试在该映射中是否存在的值

* @return 如果该映射将一个或多个键映射到指定值,则返回 true.

*/

public function containsValue(value:Object):Boolean;

/**

* 返回此映射中包含的所有值.

* @param key 从映射中移除其映射关系的键

* @return 以前与指定键相关联的值,如果没有该键的映射关系,则返回 null

*/

public function values():Array;

}

下面是实现类:HashMap

/**

* @(#)HashMap.as

*

* @author soda E-mail:junaisy@163.com

* @version 1.0

*

Copyright (C), 2007 soda.C

*

This program is protected by copyright laws.

*

Program Name:FlashSyncServer

*

Date:2006.6

*/

import mx.soda.util.Map;

/**

*

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值

*

它的实现类有以下的类:

* @author soda(弃天笑)

*/

class mx.soda.util.HashMap implements Map

{

private var obj:Object;

private var len:Number;

public function HashMap()

{

obj = new Object();

len = 0;

}

/**

* 将指定的值与此映射中的指定键相关联.

* @param key 与指定值相关联的键.

* @param value 与指定键相关联的值.

*/

public function put(key:String,value:Object):Void

{

var temp = obj[key];

if(temp == undefined)

if(temp == undefined)

{

obj[key] = value;

len++;

}

}

/**

* 返回此映射中映射到指定键的值.

* @param key 与指定值相关联的键.

* @return 此映射中映射到指定值的键,如果此映射不包含该键的映射关系,则返回 null.

*/

public function get(key:String):Object

{

return obj[key];

}

/**

* 从此映射中移除所有映射关系

*/

public function clear():Void

{

for(var temp:String in obj)

{

delete obj[temp];

}

len = 0;

}

/**

* 如果存在此键的映射关系,则将其从映射中移除

* @param key 从映射中移除其映射关系的键

* @return 以前与指定键相关联的值,如果没有该键的映射关系,则返回 null

*/

public function remove(key:String):Object

{

var temp = obj[key];

if(temp != undefined)

{

delete obj[key];

len–;

}

return temp;

}

/**

* 返回此映射中的键-值映射关系数.

* @return 此映射中的键-值映射关系的个数.

*/

public function size():Number

{

return len;

}

/**

* 如果此映射未包含键-值映射关系,则返回 true.

* @return 如果此映射未包含键-值映射关系,则返回 true.

*/

public function isEmpty():Boolean

{

if(len != 0)

{

return true;

}

return false;

}

/**

* 如果此映射包含指定键的映射关系,则返回 true.

* @param key 测试在此映射中是否存在的键.

* @return 如果此映射包含指定键的映射关系,则返回 true.

*/

public function containsKey(key:String):Boolean

{

var temp = obj[key];

if(temp != undefined)

{

return true;

}

return false;

}

/**

* 如果该映射将一个或多个键映射到指定值,则返回 true.

* @param key 测试在该映射中是否存在的值

* @return 如果该映射将一个或多个键映射到指定值,则返回 true.

*/

public function containsValue(value:Object):Boolean

{

for(var temp:String in obj)

{

if(obj[temp] == value)

{

return true;

}

}

return false;

}

/**

* 返回此映射中包含的所有值.

* @param key 从映射中移除其映射关系的键

* @return 以前与指定键相关联的值,如果没有该键的映射关系,则返回 null

*/

public function values():Array

{

var ary:Array = new Array;

for(var temp:String in obj)

{

ary.push(obj[temp]);

}

return ary;

}

}

最后附上测试代码:

import mx.soda.util.Map;

import mx.soda.util.HashMap;

var map:Map = new HashMap();

var obj = {};

obj.name = “soda”;

obj.age = 23;

map.put(”obj”,obj);

var obj 1= {};

obj1.name = “弃天笑”;

obj.age = 23;

map.put(”obj1″,obj1);

trace(map.get(”obj”).age)

trace(map.get(”obj1″).age)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值