|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
java.lang.Objectjava.util.AbstractMap <K, V>
java.util.HashMap<K, V>
public class HashMap<K, V>
Map ÀÎÅÍÆäÀ̽ºÀÇ ÇØ½Ã Å×ÀÌºí¿¡ ±Ù°ÅÇÏ´Â ±¸ÇöÀÔ´Ï´Ù. ÀÌ ±¸ÇöÀº ¸Ê¿¡ °ü·ÃµÈ ¿É¼ÇÀÇ ¿ÀÆÛ·¹À̼ÇÀ» ¸ðµÎ Áö¿øÀÇÇØ null Ä¡ ¹× null ۸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. HashMap Ŭ·¡½º´Â Hashtable·Î °°ÀºÀ̶ó°í ºÁµµ ±¦Âú½À´Ï´Ù¸¸HashMap´Â µ¿±â°¡ ÃëÇØÁöÁö ¾Ê°í, nullÀÎ °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º´Â ¸ÊÀÇ ¼ø¼¿¡ ´ëÇØ¼´Â º¸ÁõÇÏÁö ¾Ê½À´Ï´Ù. ƯÈ÷, ¾î´À ±â°£¿¡ °ÉÃÄ ÀÏÁ¤ÇÑ ¼ø¼¸¦ À¯ÁöÇÏ´Â °ÍÀ» º¸ÁõÇÏÁö ¾Ê½À´Ï´Ù.
ÀÌ ±¸ÇöÀº ÇØ½¬ ÇÔ¼ö°¡ º¹¼öÀÇ ¹öŶÀ¸·Î ¿ä¼Ò¸¦ ÀûÀýÈ÷ ºÐ»ê½ÃŰ´Â °ÍÀ» »óÁ¤ÇØ, ±âº» ¿ÀÆÛ·¹ÀÌ¼Ç (get ¹× put)À¸·Î ÀÏÁ¤½Ã°£ÀÇ ¼º´ÉÀ» Á¦°øÇÕ´Ï´Ù. ÄÚ·¹Å©¼ÇºäÀÇ ¹Ýº¹ 󸮿¡¼´Â HashMap ÀνºÅϽºÀÇ ¡¸¿ë·®¡¹(¹öŶ¼ö)°ú ±× »çÀÌÁî (Ű¿Í °ªÀÇ ¸ÅÇÎÀÇ ¼ö)ÀÇ ÇÕ°è¿¡ ºñ·ÊÇÑ ½Ã°£ÀÌ ÇÊ¿äÇÕ´Ï´Ù. µû¶ó¼, ¹Ýº¹ ó¸®ÀÇ ¼º´ÉÀÌ Áß¿äÇÑ °æ¿ì´Â Ãʱ⠿뷮À» ³Ê¹« ³ô°Ô (¶Ç´Â ºÎÇÏ °è¼ö¸¦ ³Ê¹« ³·°Ô) ¼³Á¤ÇÏÁö ¾Ê´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.
HashMap ÀνºÅϽº¿¡´Â ±× ¼º´É¿¡ ¿µÇâÀ» ÁÖ´Â 2°³ÀÇ ÆÄ¶ó¹ÌÅÍ ¡¸Ãʱ⠿뷮¡¹ ¹× ¡¸ºÎÇÏ °è¼ö¡¹°¡ ÀÖ½À´Ï´Ù. ¡¸¿ë·®¡¹Àº ÇØ½Ã Å×À̺íÀÇ ¹öŶ¼öÀ̸ç, Ãʱ⠿뷮Àº ´Ü¼øÇÏ°Ô ÇØ½Ã Å×À̺íÀÌ ÀÛ¼ºµÈ ½ÃÁ¡¿¡¼ÀÇ ¿ë·®ÀÔ´Ï´Ù. ¡¸ºÎÇÏ °è¼ö¡¹´Â ÇØ½Ã Å×À̺íÀÌ ¾î´À Á¤µµ °¡µæ µÇ¸é, ÇØ½Ã Å×À̺íÀÇ ¿ë·®ÀÌ ÀÚµ¿ÀûÀ¸·Î Áõ°¡µÉ±îÀÇ ±âÁØÀÔ´Ï´Ù. ÇØ½Ã Å×ÀÌºí ¿£Æ®¸®¼ö°¡ ºÎÇÏ °è¼ö¿Í ÇöÀçÀÇ ¿ë·®ÀÇ ÀûÀ» ³ÑÀ¸¸é, ¿ë·®Àº rehash ¸Þ¼µå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ¾à 2 ¹è°¡ µË´Ï´Ù.
´ëºÎºÐÀÇ °æ¿ì, µðÆúÆ®ÀÇ ºÎÇÏ °è¼ö (. 75)¿¡¼´Â ½Ã°£ ÄÚ½ºÆ®¿Í ½ºÆäÀ̽º ÄÚ½ºÆ®ÀÇ ±ÕÇüÀ» ÃëÇÕ´Ï´Ù. ÀÌ °ªÀ» Å©°Ô Çϸé, ½ºÆäÀ̽ºÀÇ ¿À¹öÇìµå°¡ °¨¼ÒÇÕ´Ï´Ù¸¸, ÂüÁ¶ ÄÚ½ºÆ®°¡ Áõ°¡ÇØ, get ¹× put¸¦ Æ÷ÇÔÇÑ HashMap Ŭ·¡½ºÀÇ ´ëºÎºÐÀÇ ¿ÀÆÛ·¹À̼ÇÀÌ ¿µÇâÀ» ¹Þ½À´Ï´Ù. Ãʱ⠿뷮À» ¼³Á¤ÇÒ ¶§´Â rehash ¿ÀÆÛ·¹À̼ÇÀÇ È¸¼ö¸¦ ÃÖ¼ÒÇÑÀ¸·Î ¾ïÁ¦Çϱâ À§Çؼ ¸ÊÀÇ ¿£Æ®¸® ¿¹Á¤¼ö ¹× ºÎÇÏ °è¼ö¸¦ °í·ÁÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Ãʱ⠿뷮ÀÌ, ¿£Æ®¸®ÀÇ ÃÖ´ë¼ö¸¦ ºÎÇÏ °è¼ö·Î ³ª´« °ªº¸´Ù Å« °æ¿ì, rehash ¿ÀÆÛ·¹À̼ÇÀº ÀϾÁö ¾Ê½À´Ï´Ù.
HashMap ÀνºÅϽº¿¡ ¸¹Àº ¸ÅÇÎÀÌ Æ÷ÇԵǴ °æ¿ì´Â ÀÌ Å×À̺íÀÇ ÀÛ¼º½Ã¿¡ ÃæºÐÇÑ Å©±âÀÇ ¿ë·®À» ¼³Á¤Çϸé, Çʿ信 µû¶ó¼ ÇØ½Ã¸¦ ÀÚµ¿ÀûÀ¸·Î ´Ù½ÃÀÇÇØ Å×À̺íÀ» Å©°Ô ÇÏ´Â °Íº¸´Ùµµ, ¸ÅÇÎÀ» º¸´Ù È¿À²ÀûÀ¸·Î Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ±¸ÇöÀº µ¿±âÈ µÇÁö ¾Ê½À´Ï´Ù. º¹¼öÀÇ thread°¡ µ¿½Ã¿¡ ÀÌ ¸Ê¿¡ Á¢¼ÓÇØ, ±×·¯ÇÑ threadÀÇ Àû¾îµµ 1°³ÀÌ ±¸Á¶ÀûÀ¸·Î ¸ÊÀ» º¯°æÇÏ´Â °æ¿ì¿¡´Â ¿ÜºÎ¿¡¼ µ¿±â¸¦ ÀâÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. ±¸Á¶ÀûÀÎ º¯°æÀ̶õ 1°³ ÀÌ»óÀÇ ¸ÅÇÎÀ» Ãß°¡ ¶Ç´Â »èÁ¦ÇÏ´Â ¿ÀÆÛ·¹À̼ÇÀÔ´Ï´Ù. ÀÌ¹Ì ÀνºÅϽº¿¡ Æ÷ÇԵǰí Àִ Ű¿¡ °ü·ÃµÈ °ªÀ» º¯°æÇÏ´Â °ÍÀº ±¸Á¶ÀûÀÎ º¯°æÀÌ ¾Æ´Õ´Ï´Ù. º¸Åë, ¸ÊÀÇ µ¿±â¸¦ ÀâÀ¸·Á¸é, ¸ÊÀ» ÀÚ¿¬½º·´°Ô ĸ½¶ÈÇÏ´Â °´Ã¼·Î µ¿±â¸¦ Àâ½À´Ï´Ù. ±×·¯ÇÑ °´Ã¼°¡ ¾ø´Â °æ¿ì¿¡´Â Collections.synchronizedMap ¸Þ¼µå¸¦ »ç¿ëÇØ ¸ÊÀ» ¡¸·¦¡¹ÇÕ´Ï´Ù. À̰ÍÀº ¸Ê¿¡ÀÇ ¿ì¹ßÀûÀÎ ºñµ¿±â ¾×¼¼½º¸¦ ¸·±â À§Çؼ ÀÛ¼º½Ã¿¡ ½Ç½ÃÇÏ´Â °ÍÀÌ ÃÖ¼±ÀÔ´Ï´Ù.
Map m = Collections.synchronizedMap(new HashMap(...));
ÀÌ Å¬·¡½ºÀÇ ¸ðµç ¡¸ÄÚ·¹Å©¼Çºä¸Þ¼µå¡¹¿¡ ÀÇÇØ ¸®ÅÏµÈ ¹Ýº¹ÀÚ´Â ¡¸ÆäÀ̸£ÆÄ½ºÆ®¡¹ÀÔ´Ï´Ù. ¹Ýº¹ÀÚÀÇ ÀÛ¼º ÈÄ¿¡ ¹Ýº¹ÀÚ ÀÚüÀÇ remove ¸Þ¼µå ¶Ç´Â add ¸Þ¼µå ÀÌ¿Ü ¹æ¹ýÀ¸·Î ¸ÊÀ» ±¸Á¶ÀûÀ¸·Î º¯°æÇϸé, ¹Ýº¹ÀÚ´Â ConcurrentModificationExceptionÀ» Throw ÇÕ´Ï´Ù. µû¶ó¼, µ¿½Ã º¯°æÀ» Çϸé, ¹Ýº¹ÀÚ´Â Àå·¡ÀÇ ¿¹ÃøÇÒ ¼ö ¾ø´Â ½ÃÁ¡¿¡ ÀÖ¾î ¿¹ÃøÇÒ ¼ö ¾ø´Â µ¿ÀÛÀÌ ¹ß»ýÇÏ´Â À§ÇèÀ» ȸÇÇÇϱâ À§Çؼ Áï½Ã ÇÑÆí ¼Ø¾¾ ÀÚÁÖ ¿¹¿Ü¸¦ Throw ÇÕ´Ï´Ù.
º¸Åë, ºñµ¿±âÀÇ µ¿½Ã º¯°æÀÌ ÀÖ´Â °æ¿ì, È®½ÇÇÑ º¸ÁõÀ» ½Ç½ÃÇÏ´Â °ÍÀº ºÒ°¡´ÉÇØ¼, ¹Ýº¹ÀÚÀÇ ÆäÀ̸£ÆÄ½ºÆ®ÀÇ µ¿ÀÛÀ» º¸ÁõÇÒ ¼ö ¾ø½À´Ï´Ù. ÆäÀ̸£ÆÄ½ºÆ® ¹Ýº¹ÀÚ´Â ÃÖ¼± ³ë·Â ¿øÄ¢¿¡ ±â¹ÝÇØ ConcurrentModificationExceptionÀ» Throw ÇÕ´Ï´Ù. µû¶ó¼, Á¤È®À» ±âÇϱâ À§Çؼ ÀÌ ¿¹¿Ü¿¡ ÀÇÁ¸µÈ ÇÁ·Î±×·¥À» ¾²´Â °ÍÀº À߸øÀÔ´Ï´Ù. ¡¸¹Ýº¹ÀÚÀÇ ÆäÀ̸£ÆÄ½ºÆ®ÀÇ µ¿ÀÛÀº ¹ö±×¸¦ °ËÃâÇϱâ À§Çؼ ¸¶¼Å »ç¿ëÇØ¾ß ÇÕ´Ï´Ù¡¹
ÀÌ Å¬·¡½º´Â Java Collections Framework ¸â¹öÀÔ´Ï´Ù.
Object.hashCode()
,
Collection
,
Map
,
TreeMap
,
Hashtable
,
Á÷·ÄÈ µÈ Çü½Ä »ý¼ºÀÚ °³¿ä | |
---|---|
HashMap ()
µðÆúÆ®ÀÇ Ãʱ⠿뷮 (16)°ú µðÆúÆ®ÀÇ ºÎÇÏ °è¼ö (0.75)·Î ºñ¾îÀÖ´Â HashMap¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
|
HashMap (int initialCapacity)
ÁöÁ¤µÈ Ãʱ⠿뷮°ú µðÆúÆ®ÀÇ ºÎÇÏ °è¼ö (0.75)·Î ºñ¾îÀÖ´Â HashMap¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
|
HashMap (int initialCapacity,
float loadFactor)
ÁöÁ¤µÈ Ãʱ⠿뷮°ú ºÎÇÏ °è¼ö·Î ºñ¾îÀÖ´Â HashMap¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
|
HashMap (Map <? extends K,
? extends V > m)
ÁöÁ¤µÈ Map¿Í °°Àº ¸ÅÇÎÀ¸·Î »õ·Î¿î HashMap¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
¸Þ¼µå °³¿ä | |
---|---|
void |
clear ()
¸ðµç ¸ÅÇÎÀ» ¸ÊÀ¸·ÎºÎÅÍ »èÁ¦ÇÕ´Ï´Ù. |
Object |
clone ()
HashMap ÀνºÅϽºÀÇ »þ·ÎÄÚÇǸ¦ ¸®ÅÏÇÕ´Ï´Ù. |
boolean |
containsKey (Object key)
¸ÊÀÌ ÁöÁ¤µÈ ŰÀÇ ¸ÅÇÎÀ» º¸°ü À¯ÁöÇÏ´Â °æ¿ì¿¡ true¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
boolean |
containsValue (Object value)
¸ÊÀÌ 1°³ ¶Ç´Â º¹¼öÀÇ Å°¿Í ÁöÁ¤µÈ °ªÀ» ¸ÅÇÎ Çϰí ÀÖ´Â °æ¿ì¿¡ true¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
Set <Map.Entry <K,
V >> |
entrySet ()
¸Ê¿¡ Æ÷ÇԵǰí ÀÖ´Â ¸ÅÇÎÀÇ ÄÚ·¹Å©¼Çºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
V |
get (Object key)
ÀÌ ½Äº° Á¤º¸ ÇØ½Ã ¸ÊÀ¸·Î ÁöÁ¤µÈ Ű¿¡ ¸Ê µÇ°í ÀÖ´Â °ªÀ» ¸®ÅÏÇÕ´Ï´Ù. |
boolean |
isEmpty ()
¸ÊÀÌ Å°¿Í °ªÀÇ ¸ÅÇÎÀ» º¸°ü À¯ÁöÇÏÁö ¾Ê´Â °æ¿ì¿¡ true¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
Set <K > |
keySet ()
¸Ê¿¡ Æ÷ÇԵǰí Àִ ŰÀÇ ¼ÂÆ®ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
V |
put (K key,
V value)
ÁöÁ¤µÈ °ª°ú ÁöÁ¤µÈ ۸¦ ÀÌ ¸Ê¿¡ °ü·ÃÁþ½À´Ï´Ù. |
void |
putAll (Map <? extends K,
? extends V > m)
ÁöÁ¤µÈ ¸ÊÀ¸·ÎºÎÅÍ ¸ðµç ¸ÅÇÎÀ» ¸Ê¿¡ Ä«ÇÇÇÕ´Ï´Ù. |
V |
remove (Object key)
Ű¿¡ ´ëÇÑ ¸ÅÇÎÀÌ ÀÖÀ¸¸é, ±× ۸¦ ¸ÊÀ¸·ÎºÎÅÍ »èÁ¦ÇÕ´Ï´Ù. |
int |
size ()
¸Ê³»ÀÇ Å°¿Í °ªÀÇ ¸ÅÇÎÀÇ ¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
Collection <V > |
values ()
¸Ê¿¡ Æ÷ÇԵǰí ÀÖ´Â °ªÀÇ ÄÚ·¹Å©¼Çºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
Ŭ·¡½º java.util. AbstractMap ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
---|
equals,
hashCode,
toString |
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
---|
finalize,
getClass,
notify,
notifyAll,
wait,
wait,
wait |
ÀÎÅÍÆäÀ̽º java.util. Map ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
---|
equals,
hashCode |
»ý¼ºÀÚ »ó¼¼ |
---|
public HashMap(int initialCapacity, float loadFactor)
initialCapacity
- Ãʱ⠿뷮loadFactor
- ºÎÇÏ °è¼ö
IllegalArgumentException
- Ãʱ⠿뷮ÀÌ ºÎÀÎÁö, ºÎÇÏ °è¼ö°¡ Á¤ÀÌ ¾Æ´Ñ °æ¿ìpublic HashMap(int initialCapacity)
initialCapacity
- Ãʱ⠿뷮
IllegalArgumentException
- Ãʱ⠿뷮ÀÌ ºÎÀÇ °æ¿ìpublic HashMap()
public HashMap(Map <? extends K, ? extends V > m)
m
- ¸ÅÇÎÀÌ ÀÌ ¸Ê¿¡ ¹èÄ¡µÇ´Â ¸Ê
NullPointerException
- ÁöÁ¤µÈ ¸ÊÀÌ nullÀÎ °æ¿ì¸Þ¼µåÀÇ »ó¼¼ |
---|
public int size()
Map <K,
V >
³»ÀÇ size
AbstractMap <K,
V >
³»ÀÇ size
public boolean isEmpty()
Map <K,
V >
³»ÀÇ isEmpty
AbstractMap <K,
V >
³»ÀÇ isEmpty
public V get(Object key)
Map <K,
V >
³»ÀÇ get
AbstractMap <K,
V >
³»ÀÇ get
key
- °ü·ÃµÈ
°ªÀÌ ¸®ÅϵÈ
Ű
put(Object, Object)
public boolean containsKey(Object key)
Map <K,
V >
³»ÀÇ containsKey
AbstractMap <K,
V >
³»ÀÇ containsKey
key
- ¸Ê¿¡ ÀÖÀ»Áö ¾î¶³Áö°¡ ÆÇÁ¤µÇ´Â Ű
public V put(K key, V value)
Map <K,
V >
³»ÀÇ put
AbstractMap <K,
V >
³»ÀÇ put
key
- ÁöÁ¤µÇ´Â °ªÀ» °ü·ÃµÈ
Űvalue
- ÁöÁ¤µÇ´Â Ű¿¡ °ü·ÃµÈ
°ª
public void putAll(Map <? extends K, ? extends V > m)
Map <K,
V >
³»ÀÇ putAll
AbstractMap <K,
V >
³»ÀÇ putAll
m
- ¸Ê¿¡ Æ÷ÇԵǴ ¸ÅÇÎ
NullPointerException
- ÁöÁ¤µÈ ¸ÊÀÌ nullÀÎ °æ¿ìpublic V remove(Object key)
Map <K,
V >
³»ÀÇ remove
AbstractMap <K,
V >
³»ÀÇ remove
key
- ¸ÅÇÎÀÌ ¸ÊÀ¸·ÎºÎÅÍ »èÁ¦µÇ´Â Ű
public void clear()
Map <K,
V >
³»ÀÇ clear
AbstractMap <K,
V >
³»ÀÇ clear
public boolean containsValue(Object value)
Map <K,
V >
³»ÀÇ containsValue
AbstractMap <K,
V >
³»ÀÇ containsValue
value
- ¸Ê¿¡ ÀÖÀ»Áö ¾î¶³Áö¸¦ ÆÇÁ¤µÇ´Â °ª
public Object clone()
AbstractMap <K,
V >
³»ÀÇ clone
Cloneable
public Set <K > keySet()
Map <K,
V >
³»ÀÇ keySet
AbstractMap <K,
V >
³»ÀÇ keySet
public Collection <V > values()
Map <K,
V >
³»ÀÇ values
AbstractMap <K,
V >
³»ÀÇ values
public Set <Map.Entry <K, V >> entrySet()
Map <K,
V >
³»ÀÇ entrySet
AbstractMap <K,
V >
³»ÀÇ entrySet
Map.Entry
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.