ADOBE/ ActionScript

플래시 ActionScript3.0 Array를 사용한 HashMap

AlrepondTech 2011. 11. 14. 16:19
반응형

 

 

 

=================================

=================================

=================================

 

 

 

 

 

 

출처: 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;
}
}
}

 

 

 

=================================

=================================

=================================

 

 

반응형