站内搜索:     
站点首页破釜学院网页制作FlashAction应用 → 可以储存对象的类HashMap(集合)
正在加载相关信息.....
Web 站内搜索
可以储存对象的类HashMap(集合)
】【打印】【加入收藏】【关闭收藏到新浪ViVi】【收藏到365KEY】 浏览字号:
日期:2006-09-02 人气: 出处:闪吧个人空间 作者: 弃天笑
 最近在做flash,觉得flash里没有像java那样有个可以存取对象的类,很不方便
所以自己花了点时间写了个HashMap的类.有兴趣的人可以研究一下.很简单.
基本功能都写了,当然要扩展还是可以的.下面是HashMap.as类
//************************************************************************ 
//author:弃天笑 
//E-mail:sujun10@21cn.com     @2006年8月10号 
//功能描述: 
//根据key,value存取对象.类似与java的HashMap类的功能,用法大概相似 
////************************************************************************ 
class HashMap 

        private var ListArray:Array 
        private var empty:Boolean; 
         
        public function HashMap() 
        { 
                ListArray = new Array(); 
        } 
        //存储一个新的对象 
        public function put(key:String, value:Object):Void 
        { 
                var object:Object = new Object(); 
                object.key = key; 
                object.value = value; 
                ListArray.push(object); 
        } 
        //获取储存里的对象 
        public function get(key:String):Object 
        { 
                for(var i = 0; i < ListArray.length; i++) 
                { 
                        if(ListArray[i].key == key) 
                        { 
                                return ListArray[i].value; 
                        } 
                } 
                return new Object("没有当前对象"); 
        } 
        //判断集合是否为空 
        public function isEmpty():Boolean 
        { 
                if( ListArray.length == 0) 
                { 
                        return empty = true; 
                } 
                return empty = false; 
        } 
        //清除集合中的所有元素 
        public function clear():Void 
        { 
                while(ListArray.length >= 0) 
                { 
                        ListArray.pop(); 
                } 
        } 
        //集合的长度 
        public function size():Number 
        { 
                return ListArray.length; 
        } 
        //删除当前对象 
        public function remove(key:String):Object 
        { 
                var tempObject:Object; 
                var num:Number; 
                for(var i = 0; i < ListArray.length; i++) 
                { 
                        if(ListArray[i].key = key) 
                        { 
                                tempObject = ListArray[i].value; 
                                num = i; 
                                break; 
                        } 
                } 
                for(var i = num; i <= ListArray.length; i++) 
                { 
                        var temp:Object = ListArray[i + 1].value; 
                        ListArray[i + 1].value = ListArray[i].value; 
                } 
                ListArray.pop(); 
                return tempObject; 
        } 


下面是测试代码: 
var map:HashMap = new HashMap(); 
var mc:Object = new Object(); 
mc.key = "soda"; 
var mcc:Object = new Object(); 
mcc.key = "sodar"; 

map.put("mc",mc); 
map.put("mcc",mcc); 
//map.clear(); 
var m:Object = map.get("mc"); 
trace("mc:" + m.key); 
//map.remove("mmc") 
trace("mcc:" + map.get("mcc").key); 
trace("测试存放数组"); 
var list:Array = new Array(); 
list.push("soda"); 
list.push("sodar"); 
map.put("list",list); 
var ls:Object = map.get("list"); 
for(var i = 0; i < ls.length; i++) 

        trace(ls[i]); 

在flash 8 测试通过


>>>> 进入论坛交流 <<<<