|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.util.AbstractMap | +--java.util.IdentityHashMap
ÀÌ Å¬·¡½º´Â Ű¿Í °ªÀ» ºñ±³ÇÒ ¶§¿¡ ¿ÀºêÁ§Æ®ÀÇ µ¿Àϼº ´ë½Å¿¡ ·¹ÆÛ·±½ºÀÇ µ¿ÀϼºÀ» »ç¿ëÇØ, ÇØ½Ã Å×À̺íÀ» °¡Áö´Â Map ÀνºÅϽº¸¦ ±¸ÇöÇÕ´Ï´Ù. Áï,IdentityHashMap ¿¡¼´Â (k1==k2) ÀÇ °æ¿ì¿¡ ÇÑÇØ 2 °³ÀÇ Å° k1 ¿Í k2 °¡ µ¿µîÇÏ´Ù¶ó°í º¸¿©Áý´Ï´Ù. Åë»óÀº HashMap ¿Í °°Àº Map ±¸Çö¿¡¼´Â (k1==null ? k2==null : k1.equals(k2)) ÀÇ °æ¿ì¿¡ ÇÑÇØ, 2 °³ÀÇ Å° k1 ¿Í k2 ´Â µ¿µîÇÏ´Ù¶ó°í º¸¿©Áý´Ï´Ù.
ÀÌ Å¬·¡½º´Â ¹ü¿ëÀÇ Map ±¸ÇöÀÌ ¾Æ´Õ´Ï´Ù. ÀÌ Å¬·¡½º°¡ Map ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϰí ÀÖÀ¸¸é(ÀÚ), ¿ÀºêÁ§Æ®ÀÇ ºñ±³½Ã¿¡ equals ¸Þ¼ÒµåÀÇ »ç¿ëÀ» ¿ä±¸ÇÏ´Â Map ÀÇ ÀϹÝÀûÀÎ ±Ô¾à¿¡ ÀǵµÀûÀ¸·Î À§¹ÝÀ» ÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â ÂüÁ¶ÀÇ µ¿ÀϼºÀÇ ½Ã¸àƽ½º°¡ ¿ä±¸µÇ¾úÀ» °æ¿ì¿¡°Ô¸¸ »ç¿ëµÇµµ·Ï(µíÀÌ) ¼³°èµÇ°í ÀÖ½À´Ï´Ù.
ÀÌ Å¬·¡½ºÀÇ Åë»óÀÇ »ç¿ë¿¡¼´Â Á÷·ÄÈ ¶Ç´Â µö Ä«ÇÇ µî, À§»ó±âÇÏÇÐÀ» º¸°ü À¯ÁöÇÏ´Â ¿ÀºêÁ§Æ® ±×·¡ÇÁ º¯È¯À» ½Ç½ÃÇÕ´Ï´Ù. ÀÌ·¯ÇÑ º¯È¯À» ½ÇÇàÇϱâ À§Çؼ, ÇÁ·Î±×·¥Àº ¹ú½á ó¸®µÈ ¸ðµç ¿ÀºêÁ§Æ® ÂüÁ¶¸¦ ÃßÀûÇÏ´Â ¡¸³ëµå Å×ÀÌºí¡¹À» º¸°ü À¯ÁöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. º°°³ÀÇ ¿ÀºêÁ§Æ®°¡ µ¿ÀÏÇÑ °æ¿ì¿¡¼µµ, ³ëµå Å×À̺íÀº ±× ¿ÀºêÁ§Æ®¸¦ µ¿µî½Ã ÇØ¼´Â ¾ÈµË´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ ¶Ç ÇϳªÀÇ »ç¿ë¹ýÀº ¡¸ÇÁ·Ï½Ã ¿ÀºêÁ§Æ®¡¹¸¦ À¯ÁöÇÏ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, µð¹ö±× ±â´ÉÀº µð¹ö±× µÈ ÇÁ·Î±×·¥À¸·Î °¢ ¿ÀºêÁ§Æ®ÀÇ ÇÁ·Ï½Ã ¿ÀºêÁ§Æ®¸¦ À¯ÁöÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ Å¬·¡½º´Â ÀÓÀÇÀÇ MAP ¿ÀÆÛ·¹À̼ÇÀ» ¸ðµÎ Á¦°øÇØ,null Ä¡ ¹×null ۸¦ Çã¿ë ÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â MAPÀÇ ¼ø¼¸¦ ÇÁ·ÎÅØ¼ÇÇÏÁö ¾Ê½À´Ï´Ù. ƯÈ÷, ±× ¼ø¼¸¦ Ç×»ó ÀÏÁ¤¿¡ À¯ÁöÇÏ´Â °ÍÀ» ÇÁ·ÎÅØ¼ÇÇÏÁö ¾Ê½À´Ï´Ù.
ÀÌ Å¬·¡½º´Â ½Ã½ºÅÛ ½Äº° ÇØ½¬ ÇÔ¼ö (System.identityHashCode(Object)
)°¡ º¹¼öÀÇ ¹öŶ¿¡ ¿ä¼Ò¸¦ ÀûÀýÈ÷ ºÐ»ê½Ã۸é(ÀÚ) °¡Á¤ÇØ, ±âº» ¿ÀÆÛ·¹ÀÌ¼Ç (get ¹× put)¿¡ ÀÏÁ¤½Ã°£ÀÇ ÆÛÆ÷¸Õ½º¸¦ Á¦°øÇÕ´Ï´Ù.
ÀÌ Å¬·¡½º¿¡´Â Æ©´× ÆÄ¶ó¹ÌÅͰ¡ Çϳª ÀÖ½À´Ï´Ù. Æ©´× ÆÄ¶ó¹ÌÅÍ´Â ½Ã¸àƽ½º´Â ¾Æ´Ï°í, ÆÛÆ÷¸Õ½º¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù. Áï, ¡¸¿¹»ó ÃÖ´ë »çÀÌÁÀÔ´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â MAP°¡ º¸°ü À¯ÁöµÈ´Ù°í ¿¹»óµÇ´Â Űġ ¸ÅÇÎÀÇ ÃÖ´ë¼öÀÔ´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇØ, ÇØ½Ã Å×À̺íÀ» Ãʱ⠱¸¼ºÇÏ´Â ¹öŶÀÇ ¼ö¸¦ »êÃâÇÕ´Ï´Ù. ¿¹»óµÈ ÃÖ´ë »çÀÌÁî¿Í ¹öŶ¼ö¿ÍÀÇ Á¤È®ÇÑ °ü°è´Â ÁöÁ¤µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.
MAPÀÇ »çÀÌÁî (Ű¿Í °ªÀÇ ¸ÅÇÎÀÇ ¼ö)°¡, ¿¹»ó ÃÖ´ë »çÀÌÁ Å«ÆøÀ¸·Î ³Ñ¾úÀ» °æ¿ì, ¹öŶ¼ö°¡ Áõ°¡µË´Ï´Ù. ¹öŶ¼ö (ÇØ½ÃÀÇ Àç½Ãµµ)¸¦ Áõ°¡½Ã۸é(ÀÚ) ²Ï ÄÚ½ºÆ®°¡ µé±â (À§ÇØ)¶§¹®¿¡, ÃæºÐÈ÷ Å« ¿¹»ó ÃÖ´ë »çÀÌÁîÀÇ ¾ÆÀ̵§Æ¼Æ¼ ÇØ½Ã MAP¸¦ ÀÛ¼ºÇÏ´Â ÆíÀÌ ÀûÀýÇÕ´Ï´Ù. ÇÑÆí, ÄÚ·¹Å©¼ÇºäÀÇ ¹Ýº¹Àº ÇØ½Ã Å×À̺íÀÇ ¹öŶ¼ö ¿¡ ºñ·ÊÇÑ ½Ã°£À» ¿ä±¸ÇÕ´Ï´Ù. ±× ¶§¹®¿¡ ¹Ýº¹ÀÇ ÆÛÆ÷¸Õ½º ¶Ç´Â ¸Þ¸ð¸® »ç¿ë¿¡ ƯÈ÷ ¿°·Á°¡ ÀÖ´Â °æ¿ì´Â ¿¹»ó ÃÖ´ë »çÀÌÁ ³²¾Æ Å©°Ô ÇÏÁö ¾Ê°Ô ÇÕ´Ï´Ù.
ÀÌ ±¸ÇöÀº µ¿±âÈ µÇÁö ¾Ê½À´Ï´Ù. º¹¼öÀÇ thread°¡ µ¿½Ã¿¡ ÀÌ MAP¿¡ ¾×¼¼½º ÇØ, ±×·¯ÇÑ threadÀÇ Àû¾îµµ 1 krÀÌ ±¸Á¶ÀûÀ¸·Î MAP¸¦ º¯°æÇÏ´Â °æ¿ì¿¡´Â ¿ÜºÎ¿¡¼ µ¿±â¸¦ ÀâÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. ±¸Á¶ÀûÀÎ º¯°æÀ̶õ, 1 kr ÀÌ»óÀÇ ¸ÅÇÎÀ» Ãß°¡ ¶Ç´Â »èÁ¦ÇÏ´Â ¿ÀÆÛ·¹À̼ÇÀÔ´Ï´Ù. ¹ú½á ÀνºÅϽº¿¡ ÀúÀåµÇ°í Àִ Ű¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ¾ú´ø °ªÀ» º¯°æÇÏ´Â °ÍÀº ±¸Á¶ÀûÀÎ º¯°æÀÌ ¾Æ´Õ´Ï´Ù. Åë»ó, MAPÀÇ µ¿±â¸¦ ÀâÀ¸·Á¸é , MAP¸¦ ÀÚ¿¬½º·´°Ô ĸ½¶ÈÇÏ´Â ¿ÀºêÁ§Æ®·Î µ¿±â¸¦ Àâ½À´Ï´Ù. ±×·¯ÇÑ ¿ÀºêÁ§Æ®°¡ ¾ø´Â °æ¿ì¿¡´Â Collections.synchronizedMap ¸Þ¼Òµå¸¦ »ç¿ëÇØ MAP¸¦ ¡¸·¦¡¹ÇÕ´Ï´Ù. À̰ÍÀº MAP¿¡ÀÇ ¿ì¹ßÀûÀÎ ºñµ¿±â ¾×¼¼½º¸¦ ¸·±â À§Çؼ(¶§¹®¿¡), ÀÛ¼º½Ã¿¡ ½Ç½ÃÇÏ´Â °ÍÀÌ ÃÖÀûÀÔ´Ï´Ù.
Map m = Collections.synchronizedMap(new HashMap(...));
ÀÌ Å¬·¡½ºÀÇ ¸ðµç ¡¸ÄÚ·¹Å©¼Çºä¸Þ¼Úµå¡¹¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁö´Â ¹Ýº¹ÀÚ´Â ¡¸ÆäÀ̸£ÆÄ½ºÆ®¡¹ÀÔ´Ï´Ù. ¹Ýº¹ÀÚÀÇ ÀÛ¼º ÈÄ¿¡, ¹Ýº¹ÀÚ ÀÚüÀÇ remove ¸Þ¼Òµå ¶Ç´Â add ¸Þ¼Òµå ÀÌ¿Ü ¹æ¹ýÀ¸·Î MAP¸¦ ±¸Á¶ÀûÀ¸·Î º¯°æÇϸé(ÀÚ), ¹Ýº¹ÀÚ´Â ConcurrentModificationException ¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. µû¶ó¼, µ¿½Ã º¯°æÀ» Çϸé(ÀÚ), ¹Ýº¹ÀÚ´Â Àå·¡ÀÇ ¿¹ÃøÇÒ ¼ö ¾ø´Â ½ÃÁ¡¿¡ ÀÖ¾î ¿¹ÃøÇÒ ¼ö ¾ø´Â µ¿ÀÛÀÌ ¹ß»ýÇÏ´Â À§ÇèÀ» ȸÇÇÇϱâ À§Çؼ, Áï½Ã ÇÑÆí ¼Ø¾¾ ÀÚÁÖ(Àß) ¿¹¿Ü¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
Åë»ó, ºñµ¿±âÀÇ µ¿½Ã º¯°æÀÌ ÀÖ´Â °æ¿ì, È®½ÇÇÑ ÇÁ·ÎÅØ¼ÇÀ» ½Ç½ÃÇÏ´Â °ÍÀº ºÒ°¡´ÉÇØ¼, ¹Ýº¹ÀÚÀÇ ÆäÀ̸£ÆÄ½ºÆ®ÀÇ µ¿ÀÛÀ» ÇÁ·ÎÅØ¼ÇÇÒ ¼ö ¾ø½À´Ï´Ù. ÆäÀ̸£ÆÄ½ºÆ® ¹Ýº¹ÀÚ´Â ÃÖ¼± ³ë·Â ¿øÄ¢¿¡ ±Ù°ÅÇØ,ConcurrentModificationException ¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. µû¶ó¼, Á¤È®À» ±âÇϱâ À§Çؼ ÀÌ ¿¹¿Ü¿¡ ÀÇÁ¸ÇÏ´Â ÇÁ·Î±×·¥À» ¾²´Â °ÍÀº À߸øÀÔ´Ï´Ù. ¡¸ÆäÀ̸£ÆÄ½ºÆ®ÀÇ ¹Ýº¹ÀÚ´Â ¹ö±×¸¦ °ËÃâÇϱâ À§Çؼ ¸¶¼Å »ç¿ëÇØ¾ß ÇÕ´Ï´Ù¡¹
±¸Çö»óÀÇ ÁÖÀÇ: Sedgewick ¿Í Knuth ÀÇ ÅØ½ºÆ®ÀÇ ¿¹·Î ¼³¸íÇÑ °Íó·³, ÆäÀ̸£ÆÄ½ºÆ® ¹Ýº¹ÀÚ´Â ´Ü¼øÇÑ ¡¸¼±Çü ÇÁ·Îºê¡¹ÀÇ ÇØ½Ã Å×À̺íÀÔ´Ï´Ù. ±× ¹è¿Àº Ű¿Í °ªÀÇ º¸°ü À¯Áö¸¦ ±³´ë·Î ½Ç½ÃÇÕ´Ï´Ù. °³º°ÀÇ ¹è¿À» »ç¿ëÇØ ½Ç½ÃÇÏ´Â °Íº¸´Ùµµ, Å« Å×ÀÌºí¿¡ ´ëÇØº¸´Ù ÀûÀýÇÑ ±¹¼Ò¼ºÀÌ ÀÖ½À´Ï´Ù. ¸¹Àº JRE ±¸Çö°ú ¿ÀÆÛ·¹ÀÌ¼Ç ¹Í½º¿¡¼´Â ÀÌ Å¬·¡½º´Â (¼±Çü ÇÁ·Îºê´Â ¾Æ´Ï°í üÀο¡ »ç¿ëÇÑ´Ù) HashMap
º¸´Ù °í¼º´ÉÀÇ ÆÛÆ÷¸Õ½º¸¦ °¡Á®¿É´Ï´Ù.
System.identityHashCode(Object)
,
Object.hashCode()
,
Collection
,
Map
,
HashMap
,
TreeMap
,
Á÷·ÄÈ µÈ Çü½Ä ÁßøµÈ Ŭ·¡½ºÀÇ °³¿ä |
Ŭ·¡½º java.util. Map À» »ó¼Ó¹ÞÀº ÁßøµÈ Ŭ·¡½º |
Map.Entry |
»ý¼ºÀÚÀÇ °³¿ä | |
IdentityHashMap ()
µðÆúÆ®ÀÇ ¿¹»ó ÃÖ´ë »çÀÌÁî (21)·Î, »õ·Î¿î ÇÏ´ÃÀÇ ¾ÆÀ̵§Æ¼Æ¼ ÇØ½Ã MAP¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
IdentityHashMap (int expectedMaxSize)
ÁöÁ¤ÇÑ ¿¹»ó ÃÖ´ë »çÀÌÁî·Î, »õ·Î¿î ÇÏ´ÃÀÇ MAP¸¦ ±¸ÃàÇÕ´Ï´Ù. |
|
IdentityHashMap (Map m)
ÁöÁ¤µÈ MAPÀÇ Å°¿Í °ªÀÇ ¸ÅÇÎÀ» Æ÷ÇÔÇÑ »õ·Î¿î ¾ÆÀ̵§Æ¼Æ¼ ÇØ½Ã MAP¸¦ ±¸ÃàÇÕ´Ï´Ù. |
¸Þ¼ÒµåÀÇ °³¿ä | |
void |
clear ()
¸ðµç ¸ÅÇÎÀ» MAP·ÎºÎÅÍ »èÁ¦ÇÕ´Ï´Ù. |
Object |
clone ()
¾ÆÀ̵§Æ¼Æ¼ ÇØ½Ã MAPÀÇ »þ·ÎÄÚÇǸ¦ µ¹·ÁÁÝ´Ï´Ù. |
boolean |
containsKey (Object key)
ÁöÁ¤µÈ ¿ÀºêÁ§Æ® ÂüÁ¶°¡, ÀÌ ¾ÆÀ̵§Æ¼Æ¼ ÇØ½Ã MAPÀÇ Å°Àΰ¡ ¾î¶²°¡¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. |
boolean |
containsValue (Object value)
ÁöÁ¤µÈ ¿ÀºêÁ§Æ® ÂüÁ¶°¡, ÀÌ ¾ÆÀ̵§Æ¼Æ¼ ÇØ½Ã MAPÀÇ Å°Àΰ¡ ¾î¶²°¡¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. |
Set |
entrySet ()
MAP¿¡ Æ÷ÇԵǾî ÀÖ´Â ¸ÅÇÎÀÇ ¼ÂÆ®ºä¸¦ µ¹·ÁÁÝ´Ï´Ù. |
boolean |
equals (Object o)
ÁöÁ¤µÈ ¿ÀºêÁ§Æ®¿Í MAP°¡ µ¿ÀÏÇÑÁö ¾î¶²Áö¸¦ ºñ±³ÇÕ´Ï´Ù. |
Object |
get (Object key)
ÀÌ ½Äº° Á¤º¸ ÇØ½Ã MAP·Î ÁöÁ¤µÈ Ű¿¡ MAP µÇ°í ÀÖ´Â °ªÀ» µ¹·ÁÁÝ´Ï´Ù. |
int |
hashCode ()
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 ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
toString |
Ŭ·¡½º java.lang. Object ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
finalize , getClass , notify , notifyAll , wait , wait , wait |
»ý¼ºÀÚÀÇ »ó¼¼ |
public IdentityHashMap()
public IdentityHashMap(int expectedMaxSize)
expectedMaxSize
- MAPÀÇ ¿¹»ó ÃÖ´ë »çÀÌÁî
IllegalArgumentException
- expectedMaxSize °¡ ºÎÀÇ °æ¿ìpublic IdentityHashMap(Map m)
m
- ¸ÅÇÎÀÌ ÀÌ 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
- °¡´ÉÇÑ Å°
true
containsValue(Object)
public boolean containsValue(Object value)
Map
³»ÀÇ containsValue
AbstractMap
³»ÀÇ containsValue
value
- MAP¿¡ ÀÖÀ»Áö ¾î¶³Áö¸¦ ÆÇÁ¤µÇ´Â °ª
containsKey(Object)
public Object put(Object key, Object value)
Map
³»ÀÇ put
AbstractMap
³»ÀÇ put
key
- ÁöÁ¤µÇ´Â °ªÀ» °ü·ÃÁöÀ» ¼ö Àִ Űvalue
- ÁöÁ¤µÇ´Â Ű¿¡ °ü·ÃÁöÀ» ¼ö ÀÖ´Â °ª
Object.equals(Object)
,
get(Object)
,
containsKey(Object)
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 equals(Object o)
ÀÌ MAP°¡ Åë»óÀÇ MAP¶ó°í ºñ±³µÇ´Â °æ¿ì, ÀÌ MAPÀÇ ÂüÁ¶ µ¿Àϼº º£À̽ºÀÇ ½Ã¸àƽ½º¿¡ ÀÇÇØ,Object.equals ±Ô¾àÀÇ ½Å¸ÞÆ®¸®¿Í ÀÌÇàÀÇ ¿ä°Ç¿¡ À§¹ÝÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ´Ù¸¸,Object.equals ±Ô¾àÀº º¹¼öÀÇ IdentityHashMap ÀνºÅϽº°£ À¸·Î À¯ÁöÇÏ´Â °ÍÀÌ ÇÁ·ÎÅØ¼ÇµÇ°í ÀÖ½À´Ï´Ù.
Map
³»ÀÇ equals
AbstractMap
³»ÀÇ equals
o
- MAP¿Í µ¿ÀÏÇÑÁö ¾î¶²Áö¸¦ ºñ±³ÇÏ´Â ¿ÀºêÁ§Æ®
Object.equals(Object)
public int hashCode()
Object.hashCode()
ÀÇ ÀÏ¹Ý ±Ô¾àÀÌ ¿ä±¸Çϵµ·Ï(µíÀÌ), ÀÓÀÇÀÇ 2 °³ÀÇ IdentityHashMap ÀνºÅϽº t1 ¿Í t2 ¿¡ ´ëÇØ t1.equals(t2) À̸é,t1.hashCode() ==t2.hashCode() °¡ µÇ´Â °ÍÀÌ ÇÁ·ÎÅØ¼ÇµË´Ï´Ù.
ºñ±³µÇ°í ÀÖ´Â 2 °³ÀÇ ¿ÀºêÁ§Æ®°¡ °¢°¢ IdentityHashMap ÀνºÅϽº¿Í Åë»óÀÇ MAPÀÎ °æ¿ì´Â ÀÌ MAPÀÇ entrySet ¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁø ¼¼Æ®³»¿¡ ÀÖ´Â Map.Entry ÀνºÅϽºÀÇ ÂüÁ¶ µ¿Àϼº º£À̽ºÀÇ ½Ã¸àƽ½º¿¡ ÀÇÇØ, ÀüÀÇ ´Ü¶ôÀ¸·Î ¼³¸íµÇ°í ÀÖ´ø Object.hashCode ÀÇ ±Ô¾à»óÀÇ ¿ä°Ç¿¡ À§¹ÝÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
Map
³»ÀÇ hashCode
AbstractMap
³»ÀÇ hashCode
Object.hashCode()
,
Object.equals(Object)
,
equals(Object)
public Object clone()
AbstractMap
³»ÀÇ clone
public Set keySet()
ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁØ ¿ÀºêÁ§Æ®°¡,Set ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϰí ÀÖ´Â µ¿¾È, ¿ÀºêÁ§Æ®´Â Set ÀÇ ÀÏ¹Ý ±Ô¾à¿¡´Â µû¸£Áö ¾Ê½À´Ï´Ù. ¿ÀºêÁ§Æ®ÀÇ ¹ÙÅÁÀ¸·Î µÇ´Â MAP¿Í °°ÀÌ, ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁØ ¼¼Æ®´Â ¿ÀºêÁ§Æ®ÀÇ µ¿ÀϼºÀÌ ¾Æ´Ï°í, ÂüÁ¶ÀÇ µ¿ÀϼºÀ¸·Î¼ ¿ä¼ÒÀÇ µ¿ÀϼºÀ» Á¤ÀÇÇÕ´Ï´Ù. À̰ÍÀº ¿ÀºêÁ§Æ®ÀÇ contains,remove,containsAll,equals, ¹× hashCode ¸Þ¼ÒµåÀÇ µ¿ÀÛ¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.
ÁöÁ¤µÈ ¿ÀºêÁ§Æ®°¡, µ¹·ÁÁÖ¾îÁø ¼¼Æ®¿Í ¿ÏÀüÈ÷ °°Àº ¿ÀºêÁ§Æ® ÂüÁ¶¸¦ Æ÷ÇÔÇÑ ¼¼Æ®ÀÎ °æ¿ì¿¡ ÇÑÇØ, µ¹·ÁÁÖ¾îÁø ¼¼Æ®ÀÇ equals ¸Þ¼Òµå´Â true ¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ ¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁø ¼¼Æ®°¡ Åë»ó¼¼Æ®¶ó°í ºñ±³µÇ´Â °æ¿ì,Object.equals ±Ô¾àÀÇ ½Å¸ÞÆ®¸®¿Í ÀÌÇàÀÇ ¿ä°ÇÀ» À§¹ÝÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ´Ù¸¸,Object.equals ±Ô¾àÀº ÀÌ ¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁø ¼¼Æ®°£ À¸·Î À¯ÁöÇÏ´Â °ÍÀÌ ÇÁ·ÎÅØ¼ÇµÇ°í ÀÖ½À´Ï´Ù.
µ¹·ÁÁÖ¾îÁø ¼¼Æ®ÀÇ hashCode ¸Þ¼Òµå´Â ¿ä¼ÒÀÇ ÇØ½Ã ÄÚµåÀÇ ÇÕ°è´Â ¾Æ´Ï°í, ¼¼Æ®³»ÀÇ ¿ä¼ÒÀÇ ¡¸¾ÆÀ̵§Æ¼Æ¼ ÇØ½Ã Äڵ塹ÀÇ Çհ踦 µ¹·ÁÁÝ´Ï´Ù. À̰ÍÀº ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁØ º¹¼ö¼¼Æ®¿¡,Object.hashCode ¸Þ¼ÒµåÀÇ ÀÏ¹Ý ±Ô¾àÀ» Àû¿ëÇϱâ À§Çؼ,equals ¸Þ¼ÒµåÀÇ ½Ã¸àƽ½ºÀÇ º¯°æ¿¡ ÀÇÇØ ¿ä±¸µË´Ï´Ù.
Map
³»ÀÇ keySet
AbstractMap
³»ÀÇ keySet
Object.equals(Object)
,
System.identityHashCode(Object)
public Collection values()
ÀÌ MAP¿¡ ÀúÀåµÇ°í ÀÖ´Â °ªÀÇ ÄÚ·¹Å©¼Çºä¸¦ µ¹·ÁÁÝ´Ï´Ù. ÄÝ·º¼ÇÀº MAP¸¦ ±âº»À¸·Î Çϰí ÀÖÀ¸¹Ç·Î MAP¿¡ÀÇ º¯°æ, ¹× ÄÝ·º¼Ç¿¡ÀÇ º¯°æÀº ¹Ý¿µµË´Ï´Ù. ÄÝ·º¼Ç¿¡¼ÀÇ ¹Ýº¹ ó¸®ÀÇ ÁøÇàÁßÀ¸·Î MAP°¡ º¯°æµÇ¾úÀ» °æ¿ì, ¹Ýº¹ÀÇ °á°ú´Â Á¤Àǵǰí ÀÖÁö ¾Ê½À´Ï´Ù. ÄÝ·º¼ÇÀº ¿ä¼ÒÀÇ »èÁ¦¸¦ ¼Æ÷Æ®Çϰí ÀÖ¾î, ´ëÀÀÇÏ´Â ¸ÅÇÎÀ» MAP·ÎºÎÅÍ »èÁ¦ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. »èÁ¦´Â Iterator.remove,Collection.remove,removeAll,retainAll, ¹× clear ÀÇ °¢ ¸Þ¼Òµå¸¦ ÅëÇØ ½Ç½ÃÇÕ´Ï´Ù. add ¸Þ¼Òµå, ¶Ç´Â addAll ¸Þ¼Òµå´Â ¼Æ÷Æ®µÇÁö ¾Ê½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁØ ¿ÀºêÁ§Æ®°¡,Collection ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϰí ÀÖ´Â µ¿¾È, ¿ÀºêÁ§Æ®´Â Collection's ÀÇ ÀÏ¹Ý ±Ô¾à¿¡´Â °áÄÚ µû¸£Áö ¾Ê½À´Ï´Ù. ¿ÀºêÁ§Æ®ÀÇ ¹ÙÅÁÀ¸·Î µÇ´Â MAP¿Í °°ÀÌ, ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁÖ´Â ÄÝ·º¼ÇÀº ¿ÀºêÁ§Æ®ÀÇ µ¿ÀϼºÀÌ ¾Æ´Ï°í, ÂüÁ¶ÀÇ µ¿ÀϼºÀ¸·Î¼ ¿ä¼ÒÀÇ µ¿ÀϼºÀ» Á¤ÀÇÇÕ´Ï´Ù. À̰ÍÀº ¿ÀºêÁ§Æ®ÀÇ contains,remove ¹× containsAll ¸Þ¼ÒµåÀÇ µ¿ÀÛ¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.
Map
³»ÀÇ values
AbstractMap
³»ÀÇ values
public Set entrySet()
¿øÀÌ µÇ´Â MAP¿Í °°ÀÌ, ÀÌ ¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁø ¼¼Æ®³»ÀÇ Map.Entry ¿ÀºêÁ§Æ®´Â ¿ÀºêÁ§Æ®ÀÇ µ¿ÀϼºÀÌ ¾Æ´Ï°í, ÂüÁ¶ÀÇ µ¿ÀϼºÀ¸·Î¼ Ű¿Í °ªÀÇ µ¿ÀϼºÀ» Á¤ÀÇÇÕ´Ï´Ù. À̰ÍÀº Map.Entry ¿ÀºêÁ§Æ®ÀÇ equals ¹× hashCode ¸Þ¼ÒµåÀÇ µ¿ÀÛ¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù. ÂüÁ¶ µ¿Àϼº º£À̽ºÀÇ Map.Entry e ´Â o °¡ Map.Entry ¹× e.getKey() ==o.getKey() && e.getValue() ==o.getValue() ÀÎ °æ¿ì¿¡ ÇÑÇØ o ¿ÀºêÁ§Æ®¿¡ µ¿ÀÏÇÏ°Ô µË´Ï´Ù. ÀÌ·¯ÇÑ µ¿ÀÏÇÑ ½Ã¸àƽ½º¿¡ ´ëÀÀÇϱâ À§Çؼ,hashCode ¸Þ¼Òµå´Â System.identityHashCode(e.getKey()) ^ System.identityHashCode(e.getValue()) ¸¦ µ¹·ÁÁÝ´Ï´Ù.
¼¼Æ®ÀÇ ¿£Æ®¸®¸¦ Åë»óÀÇ MAP ¿£Æ®¸®¿Í ºñ±³ÇßÀ» °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁØ ¼¼Æ®¸¦ Åë»óÀÇ MAP ¿£Æ®¸®(Åë»óÀÇ MAP¿¡ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î µ¹·ÁÁÖ¾îÁö°í ÀÖ´Ù)¼¼Æ®¿Í ºñ±³ÇßÀ» °æ¿ì¿¡, ÀÌ ¸Þ¼Òµå¿¡ ÀÇÇØ µ¹·ÁÁÖ¾îÁø ¼¼Æ®³»ÀÇ,Map.Entry ÀνºÅϽºÀÇ ÂüÁ¶ µ¿Àϼº º£À̽ºÀÇ ½Ã¸àƽ½º¿¡ ÀÇÇØ,Object.equals(Object)
±Ô¾àÀÇ ½Å¸ÞÆ®¸®¿Í ÀÌÇàÀÇ ¿ä°Ç¿¡ À§¹ÝÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸,Object.equals ±Ô¾àÀº º¹¼öÀÇ ¾ÆÀ̵§Æ¼Æ¼ º£À̽ºÀÇ MAP ¿£Æ®¸®, ¹× ÀÌ·¯ÇÑ ¿£Æ®¸®ÀÇ º¹¼ö¼¼Æ®°£ À¸·Î À¯ÁöÇÏ´Â °ÍÀÌ ÇÁ·ÎÅØ¼ÇµÇ°í ÀÖ½À´Ï´Ù.
Map
³»ÀÇ entrySet
AbstractMap
³»ÀÇ entrySet
|
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.