|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.util.AbstractCollection | +--java.util.AbstractSet | +--java.util.HashSet | +--java.util.LinkedHashSet
¿¹Ãø °¡´ÉÇÑ ¹Ýº¹ ¼ø¼¸¦ °¡Áö´Â Set ÀÎÅÍÆäÀ̽ºÀÇ ÇØ½Ã Å×À̺í°ú ¸µÅ© ¸®½ºÆ®ÀÇ ±¸ÇöÀÔ´Ï´Ù. ÀÌ ±¸ÇöÀº ¸ðµç ±¸ÇöÀÇ ¿£Æ®¸®¸¦ °ÅÄ¡´Â ÀÌÁßÀÇ ¸µÅ© ¸®½ºÆ®¸¦ º¸°ü À¯ÁöÇÑ´Ù°í ÇÏ´Â Á¡À¸·Î½á,HashSet ¿Í´Â ´Ù¸¨´Ï´Ù. ¸µÅ© ¸®½ºÆ®´Â ¹Ýº¹ ¼ø¼¸¦ Á¤ÀÇÇÕ´Ï´Ù. ÀÌ ¼ø¼´Â ¿ä¼Ò°¡ ¼¼Æ®¿¡ »ðÀÔµÈ ¼ø¼ÀÔ´Ï´Ù (»ðÀÔ¼ø¼) . ¿ä¼Ò¸¦ ¼¼Æ®¿¡ ¡¸Àç»ðÀÔ¡¹ÇÏ´Â °æ¿ì, »ðÀÔ¼ø¼´Â ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù. È£ÃâÀÇ Á÷Àü¿¡,s.contains(e) °¡ true ¸¦ µ¹·ÁÁÙ ¶§ s.add(e) °¡ ºÒ·Á °¬À» °æ¿ì, ¿ä¼Ò e °¡ ¼¼Æ® s ¿¡ Àç»ðÀԵ˴ϴÙ.
ÀÌ ±¸Çö¿¡¼´Â TreeSet
°ü·ÃÀÇ ºÎ´ãÀÇ Áõ´ë¸¦ ÁöÁö ¾Ê°í ,HashSet
¿¡ ÀÇÇÑ, ¹«ÁöÁ¤ÀÇ ÀϹÝÀûÀ¸·Î´Â ¹«Áú¼ÇÑ ¼ø¼·ÎºÎÅÍ Å¬¶óÀÌ¾ðÆ®¸¦ Áöŵ´Ï´Ù. ÀÌ ±¸ÇöÀ» »ç¿ëÇØ, ´çÃÊÀÇ ¼¼Æ®ÀÇ ±¸Çö¿¡ °ü°è¾øÀÌ, ´çÃÊÀÇ ¼¼Æ®¿Í °°Àº ¼ø¼¸¦ °¡Áö´Â ¼¼Æ®ÀÇ Ä«ÇǸ¦ »ý¼ºÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
void foo(Set m) { Set copy = new LinkedHashSet(m); ... }¸ðµâÀÌ ÀԷ¼¼Æ®¸¦ ÃëµæÇØ, Ä«ÇÇÇØ, Ä«ÇǼ¼Æ®°¡ ¼³Á¤ÇÑ ¼ø¼ÀÇ °á°ú¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì, ÀÌ ±â¼úÀº Ưº°È÷ µµ¿òÀÌ µË´Ï´Ù. ÀϹÝÀûÀ¸·Î, Ŭ¶óÀÌ¾ðÆ®´Â Á¦½Ã¿Í °°Àº ¼ø¼·Î µ¹·ÁÁÖ¾îÁö´Â °ÍÀ» Æò°¡ÇÕ´Ï´Ù.
ÀÌ Å¬·¡½º´Â ¿É¼ÇÀÇ Set ¿ÀÆÛ·¹À̼ÇÀ» ¸ðµÎ Á¦°øÇØ, null ¿ä¼Ò¸¦ Çã¿ë ÇÕ´Ï´Ù. HashSet ¿Í °°ÀÌ, ÇØ½¬ ÇÔ¼ö°¡ º¹¼öÀÇ ¹öŶÀ¸·Î ÀûÀýÈ÷ ¿ä¼Ò¸¦ ºÐ»êÇϸé(ÀÚ) °¡Á¤ÇØ, ±âº»ÀÇ ¿ÀÆÛ·¹ÀÌ¼Ç (add,contains, ¹× remove)¿¡ ÀÏÁ¤½Ã°£ÀÇ ÆÛÆ÷¸Õ½º¸¦ Á¦°øÇÕ´Ï´Ù. ÆÛÆ÷¸Õ½º´Â 1 °³ÀÇ ¿¹¿Ü¸¦ Á¦¿ÜÇØ, ¸µÅ© ¸®½ºÆ®¸¦ º¸°ü À¯ÁöÇÏ´Â ºÎ´ãÁõ°¡¿¡ ÀÇÇØ,HashSet ÀÇ ÆÛÆ÷¸Õ½ºº¸´Ù Á¶±Ý µÚ¶³¾îÁö´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. LinkedHashSet ÀÇ ¹Ýº¹¿¡´Â ¿ë·®¿¡ °ü°è¾øÀÌ, ¼¼Æ®ÀÇ ¡¸»çÀÌÁ¿¡ ºñ·ÊÇÑ ½Ã°£ÀÌ ÇÊ¿äÇÏ°Ô µË´Ï´Ù. HashSet ÀÇ ¡¸¿ë·®¡¹¿¡ ºñ·ÊÇÑ ½Ã°£À» ÇÊ¿ä·Î ÇϹǷÎ,HashSet ÀÇ ¹Ýº¹Àº ÇÑÃþ ´õ ºñ½Î°Ô µé ¿ì·Á°¡ ÀÖ½À´Ï´Ù.
¸µÅ© ÇØ½Ã ¼¼Æ®¿¡´Â ÆÛÆ÷¸Õ½º¿¡ ¿µÇâÀ» ÁÖ´Â ¡¸Ãʱ⠿뷮¡¹ ¹× ¡¸ºÎÇÏ °è¼ö¡¹ÀÇ 2 °³ÀÇ ÆÄ¶ó¹ÌÅͰ¡ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ÆÄ¶ó¹ÌÅÍ´Â HashSet ¿¡ ´ëÇØ Á¤È®ÇÏ°Ô Á¤Àǵǰí ÀÖ½À´Ï´Ù. ´Ù¸¸, ÀÌ Å¬·¡½ºÀÇ ¹Ýº¹ ȸ¼ö´Â ¿ë·®¿¡ ÀÇÇØ ¿µÇâÀ» ¹ÞÁö ¾Ê±â ¶§¹®¿¡, Ãʱ⠿뷮¿¡ ¸Å¿ì ºñ½Ñ °ªÀ» ¼±ÅÃÇØµµ, ÀÌ Å¬·¡½º¿¡¼´ÂHashSet ¿¡ ºñÇØ ±×¸¸Å °á°ú´Â ¸÷½Ã´Â ¾ø½À´Ï´Ù.
ÀÌ ±¸ÇöÀº µ¿±âÈ µÇÁö ¾Ê½À´Ï´Ù. º¹¼öÀÇ thread°¡ µ¿½Ã¿¡ ¸µÅ© ÇØ½Ã ¼¼Æ®¿¡ ¾×¼¼½º ÇØ, ±×·¯ÇÑ threadÀÇ Àû¾îµµ 1 krÀÌ ±¸Á¶ÀûÀ¸·Î ¼¼Æ®¸¦ º¯°æÇÏ´Â °æ¿ì¿¡´Â ¿ÜºÎ¿¡¼ µ¿±â¸¦ ÀâÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. Åë»ó, ±¸Á¶ÀûÀÎ º¯°æÀº ¼¼Æ®¸¦ ÀÚ¿¬½º·´°Ô ĸ½¶ÈÇϴ ƯÁ¤ÀÇ ¿ÀºêÁ§Æ®·Î µ¿±â¸¦ Àâ´Â °Í¿¡ ÀÇÇØ ´Þ¼ºµË´Ï´Ù. ±×·¯ÇÑ ¿ÀºêÁ§Æ®°¡ ¾ø´Â °æ¿ì¿¡´Â Collections.synchronizedSet ¸Þ¼Òµå¸¦ »ç¿ëÇØ ¼¼Æ®¸¦ ¡¸·¦¡¹ÇÕ´Ï´Ù. À̰ÍÀº ¿ì¹ßÀûÀÎ ºñµ¿±â ¾×¼¼½º¸¦ ¸·±â À§Çؼ(¶§¹®¿¡), ÀÛ¼º½Ã¿¡ ½Ç½ÃÇÏ´Â °ÍÀÌ ÃÖÀûÀÔ´Ï´Ù.
Set s = Collections.synchronizedSet(new LinkedHashSet(...));
ÀÌ Å¬·¡½ºÀÇ iterator ¸Þ¼Òµå°¡ µ¹·ÁÁÖ´Â Iterator ´Â ¡¸ÆäÀ̸£ÆÄ½ºÆ®¡¹ÀÔ´Ï´Ù. Áï, ¹Ýº¹ÀÚÀÇ ÀÛ¼º ÈÄ¿¡, ¹Ýº¹ÀÚ ÀÚüÀÇ remove ¸Þ¼Òµå ÀÌ¿Ü ¹æ¹ýÀ¸·Î ¼¼Æ®°¡ º¯°æµÇ¸é(ÀÚ), ¹Ýº¹ÀÚ´Â ConcurrentModificationException ¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. µû¶ó¼, µ¿½Ã¿¡ º¯°æÀ» Çϸé(ÀÚ), ¹Ýº¹ÀÚ´Â Àå·¡ÀÇ ¿¹ÃøÇÒ ¼ö ¾ø´Â ½ÃÁ¡¿¡ ÀÖ¾î ¿¹ÃøÇÒ ¼ö ¾ø´Â µ¿ÀÛÀÌ ¹ß»ýÇÏ´Â À§ÇèÀ» ȸÇÇÇϱâ À§Çؼ, Áï½Ã ÇÑÆí ¼Ø¾¾ ÀÚÁÖ(Àß) ¿¹¿Ü¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
Åë»ó, ºñµ¿±âÀÇ µ¿½Ã º¯°æÀÌ ÀÖ´Â °æ¿ì, È®½ÇÇÑ ÇÁ·ÎÅØ¼ÇÀ» ½Ç½ÃÇÏ´Â °ÍÀº ºÒ°¡´ÉÇØ¼, ¹Ýº¹ÀÚÀÇ ÆäÀ̸£ÆÄ½ºÆ®ÀÇ µ¿ÀÛÀ» ÇÁ·ÎÅØ¼ÇÇÒ ¼ö ¾ø½À´Ï´Ù. ÆäÀ̸£ÆÄ½ºÆ® ¹Ýº¹ÀÚ´Â ÃÖ¼± ³ë·Â ¿øÄ¢¿¡ ±Ù°ÅÇØ,ConcurrentModificationException ¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. µû¶ó¼, Á¤È®À» ±âÇϱâ À§Çؼ ÀÌ ¿¹¿Ü¿¡ ÀÇÁ¸ÇÏ´Â ÇÁ·Î±×·¥À» ¾²´Â °ÍÀº À߸øÀÔ´Ï´Ù. ¡¸¹Ýº¹ÀÚÀÇ ÆäÀ̸£ÆÄ½ºÆ®ÀÇ µ¿ÀÛÀº ¹ö±×¸¦ °ËÃâÇϱâ À§Çؼ ¸¶¼Å »ç¿ëÇØ¾ß ÇÕ´Ï´Ù¡¹
Object.hashCode()
,
Collection
,
Set
,
HashSet
,
TreeSet
,
Hashtable
,
Á÷·ÄÈ µÈ Çü½Ä »ý¼ºÀÚÀÇ °³¿ä | |
LinkedHashSet ()
µðÆúÆ®ÀÇ Ãʱ⠿뷮 (16)°ú ºÎÇÏ °è¼ö (0.75)·Î »õ·Î¿î ÇÏ´ÃÀÇ ¸µÅ© ÇØ½Ã ¼¼Æ®¸¦ »ý¼ºÇÕ´Ï´Ù. |
|
LinkedHashSet (Collection c)
ÁöÁ¤µÈ ÄÝ·º¼Ç°ú °°Àº ¿ä¼Ò¿¡ ÀÇÇØ »õ·Î¿î ¸µÅ© ÇØ½Ã ¼¼Æ®¸¦ »ý¼ºÇÕ´Ï´Ù. |
|
LinkedHashSet (int initialCapacity)
ÁöÁ¤µÈ Ãʱ⠿뷮°ú µðÆúÆ®ÀÇ ºÎÇÏ °è¼ö (0.75)·Î »õ·Î¿î ÇÏ´ÃÀÇ ¸µÅ© ÇØ½Ã ¼¼Æ®¸¦ »ý¼ºÇÕ´Ï´Ù. |
|
LinkedHashSet (int initialCapacity,
float loadFactor)
ÁöÁ¤µÈ Ãʱ⠿뷮°ú ºÎÇÏ °è¼ö·Î »õ·Î¿î ÇÏ´ÃÀÇ ¸µÅ© ÇØ½Ã ¼¼Æ®¸¦ »ý¼ºÇÕ´Ï´Ù. |
Ŭ·¡½º java.util. HashSet ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
add , clear , clone , contains , isEmpty , iterator , remove , size |
Ŭ·¡½º java.util. AbstractSet ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
equals , hashCode , removeAll |
Ŭ·¡½º java.util. AbstractCollection ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
addAll , containsAll , retainAll , toArray , toArray , toString |
Ŭ·¡½º java.lang. Object ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
finalize , getClass , notify , notifyAll , wait , wait , wait |
ÀÎÅÍÆäÀ̽º java.util. Set ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
add , addAll , clear , contains , containsAll , equals , hashCode , isEmpty , iterator , remove , removeAll , retainAll , size , toArray , toArray |
»ý¼ºÀÚÀÇ »ó¼¼ |
public LinkedHashSet(int initialCapacity, float loadFactor)
initialCapacity
- ¸µÅ© ÇØ½Ã ¼¼Æ®ÀÇ Ãʱ⠿뷮loadFactor
- ¸µÅ© ÇØ½Ã ¼¼Æ®ÀÇ ºÎÇÏ °è¼ö
IllegalArgumentException
- Ãʱ⠿뷮ÀÌ 0 º¸´Ù ÀÛÀºÁö ºÎÇÏ °è¼ö°¡ Á¤ÀÇ °ªÀÌ ¾Æ´Ñ °æ¿ìpublic LinkedHashSet(int initialCapacity)
initialCapacity
- LinkedHashSet ÀÇ Ãʱ⠿뷮
IllegalArgumentException
- Ãʱ⠿뷮ÀÌ 0 º¸´Ù ÀÛÀº °æ¿ìpublic LinkedHashSet()
public LinkedHashSet(Collection c)
c
- ¿ä¼Ò°¡ ¼¼Æ®¿¡ ¹èÄ¡µÇ´Â ÄÝ·º¼Ç
NullPointerException
- ÁöÁ¤µÈ ÄÝ·º¼ÇÀÌ null ÀÎ °æ¿ì
|
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.