v

[ActionScript 3.0] HashMap

· 14년 전 · 1899
 
 - ActionsCript 작업중 , hashmap를 이용할 일이 었어서 검색을 하던 중 발견 하여 . 올려 봅니다.

class com.lib.data.holder.map.HashMap
{
   
    public var keys:Array;
    public var values:Array;
    //
    public function HashMap(source)
    {
        super();
        this.keys = new Array();
        this.values = new Array();
        this.populate(source);
    }
    public function populate(source)
    {
        if (source)
        {
            for (var i in source)
            {
                this.put(i, source[i]);
            }
        }
    }

    public function containsKey(key)
    {
        return (this.findKey(key) > -1);
    }
    public function containsValue(value)
    {
        return (this.findValue(value) > -1);
    }
    public function getKeys(Void)
    {
        return (this.keys.slice());
    }
    public function getValues(Void)
    {
        return (this.values.slice());
    }
    public function get(key)
    {
        return (values[this.findKey(key)]);
    }
    public function put(key, value)
    {
        var oldKey;
        var theKey = this.findKey(key);
        if (theKey < 0)
        {
            this.keys.push(key);
            this.values.push(value);
        }
        else
        {
            oldKey = values[theKey];
            this.values[theKey] = value;
        }
        return (oldKey);
    }
    public function putAll(map)
    {
        var theValues = map.getValues();
        var theKeys = map.getKeys();
        var max = keys.length;
        for (var i = 0; i < max; i = i - 1)
        {
            this.put(theKeys[i], theValues[i]);
        }
    }
    public function clear(Void)
    {
        this.keys = new Array();
        this.values = new Array();
    }
    public function remove(key)
    {
        var theKey = this.findKey(key);
        if (theKey > -1)
        {
            var theValue = this.values[theKey];
            this.values.splice(theKey, 1);
            this.keys.splice(theKey, 1);
            return (theValue);
        }
    }
    public function size(Void)
    {
        return (this.keys.length);
    }
    public function isEmpty(Vois)
    {
        return (this.size() < 1);
    }
    public function findKey(key)
    {
        var index = this.keys.length;
        while(this.keys[--index] !== key && index > -1)
        {
        }
        return(index);
    }
    public function findValue(value)
    {
        var index = this.values.length;
        while(this.values[--index] !== value && index > -1)
        {
        }
        return (index);
    }
}


##사용방법##
import com.lib.data.holder.map.*;

/* Add John to your `contact` list */
var myContacts:HashMap = new HashMap();
myContacts.put("John", new HashMap());

/* Get John, and add a `contacts` list */
var contact:HashMap = myContacts.get("John");
contact.put("contacts", new HashMap());

/* Add Johns contacts to the list */
var theContacts:HashMap = contact.get("contacts");
theContacts.put(0, "Mary");
theContacts.put(1, "Alex");
theContacts.put(2, "Julie");

/* Is Alex a contact of John? */
var isContact = myContacts.get("John").get("contacts").containsValue("Alex");
if (isContact) trace("Alex is contact of John");
else trace("Alex is Not a contact of John");

/* Is Mark a contact of John? */
var isContact = myContacts.get("John").get("contacts").containsValue("Mark");
if (isContact) trace("Mark is contact of John");
else trace("Mark is Not a contact of John");

 
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

+
제목 글쓴이 날짜 조회
14년 전 조회 3,242
14년 전 조회 3,125
14년 전 조회 2,081
14년 전 조회 2,565
14년 전 조회 5,057
14년 전 조회 1,782
14년 전 조회 3,770
14년 전 조회 2,504
14년 전 조회 2,979
14년 전 조회 2,176
14년 전 조회 1,936
14년 전 조회 1,959
14년 전 조회 2,100
14년 전 조회 2,170
14년 전 조회 3,076
14년 전 조회 4,285
14년 전 조회 3,364
14년 전 조회 2,069
14년 전 조회 2,659
14년 전 조회 2,916
14년 전 조회 1,717
14년 전 조회 2,970
14년 전 조회 4,201
14년 전 조회 2,875
14년 전 조회 3,792
14년 전 조회 4,923
14년 전 조회 5,163
14년 전 조회 3,544
14년 전 조회 1,965
14년 전 조회 2,305
14년 전 조회 5,093
14년 전 조회 3,405
14년 전 조회 2,553
14년 전 조회 4,947
14년 전 조회 3,593
14년 전 조회 1,701
14년 전 조회 3,608
14년 전 조회 1,719
14년 전 조회 1,985
14년 전 조회 2,839
14년 전 조회 2,485
14년 전 조회 2,706
14년 전 조회 2,247
14년 전 조회 3,252
14년 전 조회 1,919
14년 전 조회 1,953
14년 전 조회 1,757
14년 전 조회 2,545
14년 전 조회 2,189
14년 전 조회 1,900
14년 전 조회 6,437
14년 전 조회 3,038
14년 전 조회 2,304
14년 전 조회 1,791
14년 전 조회 1.1만
14년 전 조회 2,703
14년 전 조회 1,713
14년 전 조회 1,756
14년 전 조회 2,587
14년 전 조회 3,141
14년 전 조회 2,672
14년 전 조회 1,894
14년 전 조회 3,204
14년 전 조회 3,140
14년 전 조회 4,140
14년 전 조회 2,254
14년 전 조회 2,405
14년 전 조회 1,946
14년 전 조회 2,001
14년 전 조회 3,249
14년 전 조회 2,030
14년 전 조회 3,544
14년 전 조회 1,765
14년 전 조회 4,627
14년 전 조회 1,802
14년 전 조회 3,210
14년 전 조회 4,594
14년 전 조회 1,840
14년 전 조회 2,039
14년 전 조회 2,400
14년 전 조회 1,930
14년 전 조회 2,483
14년 전 조회 2,346
14년 전 조회 2,493
14년 전 조회 2,225
14년 전 조회 1,816
14년 전 조회 2,275
14년 전 조회 2,275
14년 전 조회 2,168
14년 전 조회 1,734
14년 전 조회 1,673
14년 전 조회 2,091
14년 전 조회 1,612
14년 전 조회 4,161
14년 전 조회 1,630
14년 전 조회 2,000
14년 전 조회 1,666
14년 전 조회 1,696
14년 전 조회 2,919
14년 전 조회 1,984