|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.util.AbstractMap | +--java.util.WeakHashMap
ÇØ½Ã Å×ÀÌºí¿¡ ±Ù°ÅÇÑ ¡¸¾àŰ¡¹¿¡ ÀÇÇÑ Map ±¸ÇöÀÔ´Ï´Ù. WeakHashMap ³»ÀÇ ¿£Æ®¸®´Â ±× ۰¡ º¸ÅëÀ¸·Î »ç¿ëµÇ´Â °ÍÀÌ ¾ø¾îÁö¸é(ÀÚ) ÀÚµ¿ÀûÀ¸·Î »èÁ¦µË´Ï´Ù. º¸´Ù Á¤È®ÇϰԴ ÁöÁ¤ÀÇ Å°ÀÇ ¸ÅÇÎÀÌ Á¸ÀçÇØµµ, °¡º£Áö ¼öÁý°¡°¡ ۸¦ ÆÄ±âÇÏ´Â °ÍÀ» ¸·À» ¼ö ¾ø½À´Ï´Ù. Áï, ۰¡ ÆÄÀ̳ª¶óÀÌÁî °¡´ÉÇÏ°Ô µÇ¾î ÆÄÀ̳ª¶óÀÌÁî µÇ°í ³ª¼, Àç»ýµÇ´Â °ÍÀ» ¸·À» ¼ö ¾ø½À´Ï´Ù. ۰¡ ÆÄ±âµÇ¾úÀ» °æ¿ì, ±× ¿£Æ®¸®°¡ »ç½Ç»ó MAP·ÎºÎÅÍ »èÁ¦µÇ¹Ç·Î, ÀÌ Å¬·¡½º´Â ´Ù¸¥ Map ±¸Çö°ú´Â Á¶±Ý ´Ù¸¥ µ¿ÀÛÀ» ÇÕ´Ï´Ù.
null Ä¡¿Í null Ű´Â ¾î´À Âʰúµµ ¼Æ÷Æ®µÇ°í ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º´Â HashMap Ŭ·¡½º¿Í °°Àº ÆÛÆ÷¸Õ½º Ư¼ºÀ» °¡Á®, Ãʱ⠿뷮°ú ºÎÇÏ °è¼öÀÇ °°Àº È¿À² ÆÄ¶ó¹ÌÅ͸¦ °¡Áý´Ï´Ù.
´ëºÎºÐÀÇ ÄÝ·º¼Ç Ŭ·¡½º¿Í °°ÀÌ, ÀÌ Å¬·¡½º´Â µ¿±âÈ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù. µ¿±âÈ µÇ°í ÀÖ´Â WeakHashMap ´Â Collections.synchronizedMap ¸Þ¼Òµå¸¦ »ç¿ëÇØ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ Å¬·¡½º´Â equals ¸Þ¼Òµå°¡ == ¿¬»êÀÚ¸¦ »ç¿ëÇØ ¿ÀºêÁ§Æ® ½Äº° Á¤º¸¸¦ ÆÇÁ¤Çϴ Ű ¿ÀºêÁ§Æ®¿Í ÇÔ²² »ç¿ëÇÏ´Â °ÍÀ» ÁÖµÈ ¸ñÀûÀ¸·Î Çϰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Å°°¡ ÆÄ±âµÇ¸é(ÀÚ) ´Ù½Ã µÎ ¹ø ´Ù½Ã ¸¸µé °ÍÀº ¾ø±â ¶§¹®¿¡, ±× ÀÌÈÄ¿¡ WeakHashMap ³»ÀÇ ±× ŰÀÇ °Ë»öÀ» ÇàÇϰųª ±× ¿£Æ®¸®°¡ »èÁ¦µÇ¾ú´ø °Í¿¡ ºÎÀû´çÀ» ´À²¸µµ, ´ëóÇÏ´Â ¹æ¹ýÀº ¾ø½À´Ï´Ù. ÀÌ Å¬·¡½º´Â String ÀνºÅϽºµîÀÇ ¿ÀºêÁ§Æ® ½Äº° Á¤º¸¿¡ ±Ù°ÅÇÏÁö ¾Ê´Â equals ¸Þ¼Òµå¸¦ °¡Áö´Â Ű ¿ÀºêÁ§Æ®¸¦ ÀûÀýÈ÷ ó¸®ÇÕ´Ï´Ù. ´Ù¸¸, ´Ù½Ã ¸¸µé¾î °¡´ÉÇÑ Å° ¿ÀºêÁ§Æ®¿¡¼´Â ۰¡ ÆÄ±âµÈ WeakHashMap ¿£Æ®¸®¸¦ ÀÚµ¿ »èÁ¦Çϸé(ÀÚ), È¥¶õÀ» Èä³»±¸°¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.
WeakHashMap Ŭ·¡½ºÀÇ µ¿ÀÛÀÇ ÀϺδ °¡º£Áö ¼öÁý°¡ÀÇ ¾×¼Ç¿¡ ÀÇÁ¸ÇϹǷÎ, Àß ¾Ë·ÁÁ® À־ ÇÊ¿äÇÏÁö ¾Ê´Â ¸î°³ÀÇ Map ÀÎ º¯ÇüÀº ÀÌ Å¬·¡½º¿¡ ÀûÀýÇÏÁö ¾Ê½À´Ï´Ù. °¡º£Áö ¼öÁý°¡´Â ۸¦ ¾ðÁ¦¶óµµ ÆÄ±âÇÒ ¼ö ÀÖÀ¸¹Ç·Î,WeakHashMap ´Â ¹ÌÁöÀÇ thread°¡ ¿£Æ®¸®¸¦ »èÁ¦ÁßÀÎ°Í °°ÀÌ µ¿ÀÛÇÕ´Ï´Ù. ƯÈ÷,WeakHashMap ÀνºÅϽº·Î µ¿±â½ÃÄÑ, ±× º¯ÀÌ ¸Þ¼ÒµåÀÇ ¾î´À °Íµµ È£ÃâÇÏÁö ¾Ê´ÂÀ¸·Î ÇØµµ,size ¸Þ¼Òµå´Â º¸´Ù ÀÛÀº °ªÀ» ½Ã°£ÀÇ °æ°ú¿Í ÇÔ²² µ¹·ÁÁÙ ¼ö°¡ ÀÖ¾îisEmpty ¸Þ¼Òµå´Â ÁöÁ¤ÀÇ Å°¿¡ ´ëÇØ¼ false ¸¦ µ¹·ÁÁÖ°í ³ª¼ true ¸¦ µ¹·ÁÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. containsKey ¸Þ¼Òµå´Â true ¸¦ µ¹·ÁÁØ ÈÄ¿¡ false ¸¦ µ¹·ÁÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. get ¸Þ¼Òµå´Â ÁöÁ¤ÀÇ Å°¿¡´Â °ªÀ» µ¹·ÁÁØ ÈÄ¿¡ null ¸¦ µ¹·ÁÁÙ ¼ö°¡ ÀÖ¾îput ¸Þ¼Òµå¿Í remove ¸Þ¼Òµå´Â Á¾·¡ MAP¿¡ ÀÖ´Â °Íó·³ º¸ÀΠŰ¿¡ ´ëÇØ¼ °¢°¢ null ¿Í false ¸¦ µ¹·ÁÁÙ ¼ö°¡ ÀÖ½À´Ï´Ù. Ű ¼¼Æ®, °ª¼¼Æ®, ¿£Æ®¸® ¼¼Æ®¸¦ °è¼ÓÇØ °Ë»çÇÏ¸é ¿¬¼ÓÀûÀ¸·Î Ãâ·ÂÇÏ´Â ¿ä¼ÒÀÇ ¼ö°¡ Àû¾îµµ µË´Ï´Ù.
WeakHashMap ³»ÀÇ °¢ Ű ¿ÀºêÁ§Æ®´Â ¾àÂüÁ¶ÀÇ ´ë»óÀ¸·Î ÇØ °£Á¢ÀûÀ¸·Î ÀúÀåµÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, Ű´Â ±×¿¡ ´ëÇÑ ¾àÂüÁ¶°¡ MAPÀÇ ³»¿Ü ¸ðµÎ °¡º£Áö ¼öÁý°¡¿¡ ÀÇÇØ Ŭ¸®¾î µÇ°í ³ª¼ ¸¶¼Å ÀÚµ¿ÀûÀ¸·Î »èÁ¦µË´Ï´Ù.
±¸Çö»óÀÇ ÁÖÀÇ: WeakHashMap ³»ÀÇ °ª¿ÀºêÁ§Æ®´Â Åë»óÀÇ °ÂüÁ¶¿¡ ÀÇÇØ º¸°ü À¯ÁöµË´Ï´Ù. ÀÌ ¶§¹®¿¡, °ªÀÇ ¿ÀºêÁ§Æ®°¡ Á÷Á¢ÀûÀ¸·Îµµ °£Á¢ÀûÀ¸·Îµµ °ÇÏ°Ô ±× ÀÚüÀÇ Å°¸¦ ÂüÁ¶ÇÏÁö ¾Ê°Ô ÇØ ÁÖ¼¼¿ä. ±×·¯¸é, ۰¡ ÆÄ±âµÇÁö ¾Ê°Ô µË´Ï´Ù. °ªÀÇ ¿ÀºêÁ§Æ®°¡ WeakHashMap ÀÚü¸¦ °³ÀÔ½ÃÄÑ ±× ۸¦ °£Á¢ÀûÀ¸·Î ÂüÁ¶Çϵµ·Ï ÇØ ÁÖ¼¼¿ä. Áï, °ªÀÇ ¿ÀºêÁ§Æ®´Â ´Ù¸¥ Ű ¿ÀºêÁ§Æ®¸¦ ¹Ýµå½Ã ÂüÁ¶ÇØ, ±× °ü·ÃÁöÀ» ¼ö ÀÖ°í ÀÖ´Â °ªÀÇ ¿ÀºêÁ§Æ®°¡ À̹øÀº ÃÖÃÊÀÇ °ªÀÇ ¿ÀºêÁ§Æ®ÀÇ Å°¸¦ ¹Ýµå½Ã ÂüÁ¶ÇÕ´Ï´Ù. ÀÌ ¹®Á¦¿¡ ´ëÀÀÇÏ´Â 1 °³ÀÇ ¹æ¹ýÀº °ªÀÚü¸¦ m.put(key, new WeakReference(value)) ¿Í °°ÀÌ, »ðÀÔÀü¿¡ WeakReferences ¿¡ ·¦ ÇØ, ´ÙÀ½¿¡ °¢ get ·Î ·¦ ÇØÁ¦ÇÏ´Â °ÍÀÔ´Ï´Ù.
ÀÌ Å¬·¡½ºÀÇ ¸ðµç ¡¸ÄÚ·¹Å©¼Çºä¸Þ¼Úµå¡¹¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â ¹Ýº¹ÀÚ´Â ¡¸ÆäÀ̸£ÆÄ½ºÆ®¡¹ÀÔ´Ï´Ù. ¹Ýº¹ÀÚÀÇ ÀÛ¼º ÈÄ¿¡, ¹Ýº¹ÀÚ ÀÚüÀÇ remove ¸Þ¼Òµå ¶Ç´Â add ¸Þ¼Òµå ÀÌ¿Ü ¹æ¹ýÀ¸·Î MAP¸¦ ±¸Á¶ÀûÀ¸·Î º¯°æÇϸé(ÀÚ), ¹Ýº¹ÀÚ´Â ConcurrentModificationException ¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. µû¶ó¼, µ¿½Ã º¯°æÀ» Çϸé(ÀÚ), ¹Ýº¹ÀÚ´Â Àå·¡ÀÇ ¿¹ÃøÇÒ ¼ö ¾ø´Â ½ÃÁ¡¿¡ ÀÖ¾î ¿¹ÃøÇÒ ¼ö ¾ø´Â µ¿ÀÛÀÌ ¹ß»ýÇÏ´Â À§ÇèÀ» ȸÇÇÇϱâ À§Çؼ, Áï½Ã ÇÑÆí ¼Ø¾¾ ÀÚÁÖ(Àß) ¿¹¿Ü¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
Åë»ó, ºñµ¿±âÀÇ µ¿½Ã º¯°æÀÌ ÀÖ´Â °æ¿ì, È®½ÇÇÑ ÇÁ·ÎÅØ¼ÇÀ» ½Ç½ÃÇÏ´Â °ÍÀº ºÒ°¡´ÉÇØ¼, ¹Ýº¹ÀÚÀÇ ÆäÀ̸£ÆÄ½ºÆ®ÀÇ µ¿ÀÛÀ» ÇÁ·ÎÅØ¼ÇÇÒ ¼ö ¾ø½À´Ï´Ù. ÆäÀ̸£ÆÄ½ºÆ® ¹Ýº¹ÀÚ´Â ÃÖ¼± ³ë·Â ¿øÄ¢¿¡ ±Ù°ÅÇØ,ConcurrentModificationException ¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. µû¶ó¼, Á¤È®À» ±âÇϱâ À§Çؼ ÀÌ ¿¹¿Ü¿¡ ÀÇÁ¸ÇÏ´Â ÇÁ·Î±×·¥À» ¾²´Â °ÍÀº À߸øÀÔ´Ï´Ù. ¡¸¹Ýº¹ÀÚÀÇ ÆäÀ̸£ÆÄ½ºÆ®ÀÇ µ¿ÀÛÀº ¹ö±×¸¦ °ËÃâÇϱâ À§Çؼ ¸¶¼Å »ç¿ëÇØ¾ß ÇÕ´Ï´Ù¡¹
HashMap
,
WeakReference
ÁßøµÈ Ŭ·¡½ºÀÇ °³¿ä |
Ŭ·¡½º java.util. Map À» »ó¼Ó¹ÞÀº ÁßøµÈ Ŭ·¡½º |
Map.Entry |
»ý¼ºÀÚÀÇ °³¿ä | |
WeakHashMap ()
µðÆúÆ®ÀÇ Ãʱ⠿뷮 (16)°ú µðÆúÆ®ÀÇ ºÎÇÏ °è¼ö (0.75)¸¦ °¡Áö´Â »õ·Î¿î ÇÏ´ÃÀÇ WeakHashMap ¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
|
WeakHashMap (int initialCapacity)
ÁöÁ¤ÀÇ Ãʱ⠿뷮°ú µðÆúÆ®ÀÇ ºÎÇÏ °è¼ö (0.75)¸¦ °¡Áö´Â »õ·Î¿î ÇÏ´ÃÀÇ WeakHashMap ¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
|
WeakHashMap (int initialCapacity,
float loadFactor)
ÁöÁ¤ÀÇ Ãʱ⠿뷮°ú ÁöÁ¤ÀÇ ºÎÇÏ °è¼ö¸¦ °¡Áö´Â »õ·Î¿î ÇÏ´ÃÀÇ WeakHashMap ¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
|
WeakHashMap (Map t)
ÁöÁ¤µÈ Map ¿Í °°Àº ¸ÅÇÎÀ» °¡Áö´Â ½Å±ÔÀÇ WeakHashMap ¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
¸Þ¼ÒµåÀÇ °³¿ä | |
void |
clear ()
¸ðµç ¸ÅÇÎÀ» MAP·ÎºÎÅÍ »èÁ¦ÇÕ´Ï´Ù. |
boolean |
containsKey (Object key)
MAP°¡ ÁöÁ¤ÀÇ Å°ÀÇ ¸ÅÇÎÀ» º¸°ü À¯ÁöÇÏ´Â °æ¿ì¿¡ true ¸¦ µ¹·ÁÁÝ´Ï´Ù. |
boolean |
containsValue (Object value)
MAP°¡ 1 °³ ¶Ç´Â º¹¼öÀÇ Å°¿Í ÁöÁ¤µÈ °ªÀ» ¸ÅÇÎ Çϰí ÀÖ´Â °æ¿ì¿¡ true ¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Set |
entrySet ()
MAP¿¡ ÀúÀåµÇ°í ÀÖ´Â ¸ÅÇÎÀÇ ÄÚ·¹Å©¼Çºä¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Object |
get (Object key)
ÀÌ ¾àÇØ½Ã MAP·Î ÁöÁ¤µÈ Ű¿¡ MAP µÇ°í ÀÖ´Â °ªÀ» µ¹·ÁÁÝ´Ï´Ù. |
boolean |
isEmpty ()
ÀÌ MAP°¡ Ű¿Í °ªÀÇ ¸ÅÇÎÀ» º¸°ü À¯ÁöÇÏÁö ¾Ê´Â °æ¿ì´Â true ¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Set |
keySet ()
MAP¿¡ ÀúÀåµÇ°í Àִ ŰÀÇ ¼ÂÆ®ºä¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Object |
put (Object key,
Object value)
ÁöÁ¤ÀÇ °ª°ú ÁöÁ¤µÈ ۸¦ ÀÌ MAP¿¡ °ü·ÃÁþ½À´Ï´Ù. |
void |
putAll (Map t)
ÁöÁ¤ÀÇ MAP·ÎºÎÅÍ ¸ðµç ¸ÅÇÎÀ» MAP¿¡ Ä«ÇÇÇÕ´Ï´Ù. |
Object |
remove (Object key)
Ű¿¡ ´ëÇÑ ¸ÅÇÎÀÌ ÀÖÀ¸¸é, ±× ۸¦ MAP·ÎºÎÅÍ »èÁ¦ÇÕ´Ï´Ù. |
int |
size ()
ÀÌ MAPÀÇ Å°¿Í °ªÀÇ ¸ÅÇÎÀÇ ¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Collection |
values ()
MAP¿¡ ÀúÀåµÇ°í ÀÖ´Â °ªÀÇ ÄÚ·¹Å©¼Çºä¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Ŭ·¡½º java.util. AbstractMap ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
clone , equals , hashCode , toString |
Ŭ·¡½º java.lang. Object ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
finalize , getClass , notify , notifyAll , wait , wait , wait |
ÀÎÅÍÆäÀ̽º java.util. Map ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
equals , hashCode |
»ý¼ºÀÚÀÇ »ó¼¼ |
public WeakHashMap(int initialCapacity, float loadFactor)
initialCapacity
- WeakHashMap ÀÇ Ãʱ⠿뷮loadFactor
- WeakHashMap ÀÇ ºÎÇÏ °è¼ö
IllegalArgumentException
- Ãʱ⠿뷮ÀÌ ºÎÀΰ¡, ºÎÇÏ °è¼ö°¡ Á¤ÀÌ ¾Æ´Ñ °æ¿ìpublic WeakHashMap(int initialCapacity)
initialCapacity
- WeakHashMap ÀÇ Ãʱ⠿뷮
IllegalArgumentException
- Ãʱ⠿뷮ÀÌ ºÎÀÇ °æ¿ìpublic WeakHashMap()
public WeakHashMap(Map t)
t
- ¸ÅÇÎÀÌ ÀÌ MAP¿¡ ¹èÄ¡µÇ´Â MAP
NullPointerException
- ÁöÁ¤µÈ MAP°¡ null ÀÎ °æ¿ì¸Þ¼ÒµåÀÇ »ó¼¼ |
public int size()
Map
³»ÀÇ size
AbstractMap
³»ÀÇ size
public boolean isEmpty()
Map
³»ÀÇ isEmpty
AbstractMap
³»ÀÇ isEmpty
public Object get(Object key)
Map
³»ÀÇ get
AbstractMap
³»ÀÇ get
key
- °ü·ÃÁöÀ» ¼ö ÀÖ¾ú´ø °ªÀÌ µ¹·ÁÁÖ¾îÁö´Â Ű
put(Object, Object)
public boolean containsKey(Object key)
Map
³»ÀÇ containsKey
AbstractMap
³»ÀÇ containsKey
key
- MAP¿¡ ÀÖÀ»Áö ¾î¶³Áö°¡ ÆÇÁ¤µÇ´Â Ű
public Object put(Object key, Object value)
Map
³»ÀÇ put
AbstractMap
³»ÀÇ put
key
- ÁöÁ¤µÇ´Â °ªÀ» °ü·ÃÁöÀ» ¼ö Àִ Űvalue
- ÁöÁ¤µÇ´Â Ű¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ´Â °ª
public void putAll(Map t)
Map
³»ÀÇ putAll
AbstractMap
³»ÀÇ putAll
t
- MAP¿¡ ÀúÀåµÇ´Â ¸ÅÇÎ
NullPointerException
- ÁöÁ¤µÈ MAP°¡ null ÀÎ °æ¿ìpublic Object remove(Object key)
Map
³»ÀÇ remove
AbstractMap
³»ÀÇ remove
key
- ¸ÅÇÎÀÌ MAP·ÎºÎÅÍ »èÁ¦µÇ´Â Ű
public void clear()
Map
³»ÀÇ clear
AbstractMap
³»ÀÇ clear
public boolean containsValue(Object value)
Map
³»ÀÇ containsValue
AbstractMap
³»ÀÇ containsValue
value
- MAP¿¡ ÀÖÀ»Áö ¾î¶³Áö¸¦ ÆÇÁ¤µÇ´Â °ª
public Set keySet()
Map
³»ÀÇ keySet
AbstractMap
³»ÀÇ keySet
public Collection values()
Map
³»ÀÇ values
AbstractMap
³»ÀÇ values
public Set entrySet()
Map
³»ÀÇ entrySet
AbstractMap
³»ÀÇ entrySet
Map.Entry
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ ÀÖ¾î¼ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.