반응형
=================================
=================================
=================================
출처: http://lazli.tistory.com/38
HashMap은 key값을 가지고 value를 찾아내는 일종의 사전과도 같은 구조체이다.
HashMap을 만드는 방법에는 여러 가지가 있겠지만, 나는 Array와 Dictionary를 이용하여 만들어 보려한다.
먼저 Array를 이용한 HashMap이다.
=============================================================================
package jwlee.utils
{
/**
* @author jwLee
*/
public class HashMap
{
private var hashTable : Array;
public function HashMap (hm : HashMap = null) : void
{
if (hm == null)
{
hashTable = new Array();
}
else
{
hashTable = hm.getHashTable();
}
}
public function put (key : *, value : *) : *
{
var len : int = length;
for(var i : int = 0;i < len;i++)
{
if(hashTable[i].key == key)
{
hashTable[i].key = key;
hashTable[i].value = value;
return value;
}
}
hashTable.push({key:key, value:value});
return value;
}
public function remove (key : *) : Boolean
{
var len : int = length;
for(var i : int = 0;i < len;i++)
{
if(hashTable[i].key == key)
{
hashTable.splice(i, 1);
return true;
}
}
return false;
}
public function getValue (key : *) : *
{
var len : int = length;
for(var i : int = 0;i < len;i++)
{
if(hashTable[i].key == key)
{
return hashTable[i].value;
}
}
return null;
}
public function getHashTable () : Array
{
return hashTable;
}
public function setHashTable (hashTable : Array) : void
{
this.hashTable = hashTable;
}
public function get length () : int
{
return hashTable.length;
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
//출처: http://lazli.tistory.com/39
package jwlee.utils
{
import flash.utils.ByteArray;
import flash.utils.Dictionary;
/**
* @author jwLee
*/
public class HashDic
{
private var hashdic : Dictionary;
public function HashDic (hd : HashDic = null) : void
{
if (hd == null)
{
hashdic = new Dictionary();
}
else
{
hashdic = hd.getHashDic();
}
}
public function put (key : *, value : *) : *
{
if(hashdic[key])
{
hashdic[key] = value;
return value;
}
hashdic[key] = value;
return value;
}
public function remove (key : *) : Boolean
{
delete hashdic[key];
return false;
}
public function getValue (key : *) : *
{
if(hashdic[key])
{
return hashdic[key];
}
else
{
return null;
}
}
public function getHashDic () : Dictionary
{
return hashdic;
}
public function setHashDic (hashTable : Dictionary) : void
{
this.hashdic = hashTable;
}
}
}
=================================
=================================
=================================
반응형
'ADOBE > ActionScript' 카테고리의 다른 글
플래시 AS3.0 특징 몇가지 (0) | 2011.11.15 |
---|---|
Java에서 쓰는 데이터형(map, array)는 AS3.0에서 어떻게 쓰이나? (0) | 2011.11.14 |
Using Loops in ActionScript 3.0 (0) | 2011.11.14 |
플래쉬 소수점 처리 (0) | 2011.11.14 |
[AS] 플래시 삼성스마트 TV 앱 올리기 에뮬레이터 OR TV (스마트허브에 올리기) (0) | 2011.11.11 |