|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
java.lang.Objectjava.util.AbstractCollection <E>
java.util.AbstractSet <E>
java.util.HashSet <E>
java.util.LinkedHashSet<E>
public class LinkedHashSet<E>
¿¹Ãø °¡´ÉÇÑ ¹Ýº¹ ¼ø¼¸¦ °¡Áö´Â 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°³ÀÌ ±¸Á¶ÀûÀ¸·Î ¼¼Æ®¸¦ º¯°æÇÏ´Â °æ¿ì¿¡´Â ¿ÜºÎ¿¡¼ µ¿±â¸¦ ÀâÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. º¸Åë, ±¸Á¶ÀûÀÎ º¯°æÀº ¼¼Æ®¸¦ ÀÚ¿¬½º·´°Ô ĸ½¶ÈÇϴ ƯÁ¤ÀÇ °´Ã¼·Î µ¿±â¸¦ Àâ´Â °Í¿¡ ÀÇÇØ ´Þ¼ºµË´Ï´Ù. ±×·¯ÇÑ °´Ã¼°¡ ¾ø´Â °æ¿ì¿¡´Â Collections.synchronizedSet ¸Þ¼µå¸¦ »ç¿ëÇØ ¼¼Æ®¸¦ ¡¸·¦¡¹ÇÕ´Ï´Ù. À̰ÍÀº ¿ì¹ßÀûÀÎ ºñµ¿±â ¾×¼¼½º¸¦ ¸·±â À§Çؼ ÀÛ¼º½Ã¿¡ ½Ç½ÃÇÏ´Â °ÍÀÌ ÃÖÀûÀÔ´Ï´Ù.
Set s = Collections.synchronizedSet(new LinkedHashSet(...));
ÀÌ Å¬·¡½ºÀÇ iterator ¸Þ¼µå°¡ µ¹·ÁÁÖ´Â Iterator´Â ¡¸ÆäÀ̸£ÆÄ½ºÆ®¡¹ÀÔ´Ï´Ù. Áï, ¹Ýº¹ÀÚÀÇ ÀÛ¼º ÈÄ¿¡ ¹Ýº¹ÀÚ ÀÚüÀÇ remove ¸Þ¼µå ÀÌ¿Ü ¹æ¹ýÀ¸·Î ¼¼Æ®°¡ º¯°æµÇ¸é, ¹Ýº¹ÀÚ´Â ConcurrentModificationExceptionÀ» Throw ÇÕ´Ï´Ù. µû¶ó¼, µ¿½Ã¿¡ º¯°æÀ» Çϸé, ¹Ýº¹ÀÚ´Â Àå·¡ÀÇ ¿¹ÃøÇÒ ¼ö ¾ø´Â ½ÃÁ¡¿¡ ÀÖ¾î ¿¹ÃøÇÒ ¼ö ¾ø´Â µ¿ÀÛÀÌ ¹ß»ýÇÏ´Â À§ÇèÀ» ȸÇÇÇϱâ À§Çؼ Áï½Ã ÇÑÆí ¼Ø¾¾ ÀÚÁÖ ¿¹¿Ü¸¦ Throw ÇÕ´Ï´Ù.
º¸Åë, ºñµ¿±âÀÇ µ¿½Ã º¯°æÀÌ ÀÖ´Â °æ¿ì, È®½ÇÇÑ º¸ÁõÀ» ½Ç½ÃÇÏ´Â °ÍÀº ºÒ°¡´ÉÇØ¼, ¹Ýº¹ÀÚÀÇ ÆäÀ̸£ÆÄ½ºÆ®ÀÇ µ¿ÀÛÀ» º¸ÁõÇÒ ¼ö ¾ø½À´Ï´Ù. ÆäÀ̸£ÆÄ½ºÆ® ¹Ýº¹ÀÚ´Â ÃÖ¼± ³ë·Â ¿øÄ¢¿¡ ±â¹ÝÇØ ConcurrentModificationExceptionÀ» Throw ÇÕ´Ï´Ù. µû¶ó¼, Á¤È®À» ±âÇϱâ À§Çؼ ÀÌ ¿¹¿Ü¿¡ ÀÇÁ¸µÈ ÇÁ·Î±×·¥À» ¾²´Â °ÍÀº À߸øÀÔ´Ï´Ù. ¡¸¹Ýº¹ÀÚÀÇ ÆäÀ̸£ÆÄ½ºÆ®ÀÇ µ¿ÀÛÀº ¹ö±×¸¦ °ËÃâÇϱâ À§Çؼ ¸¶¼Å »ç¿ëÇØ¾ß ÇÕ´Ï´Ù¡¹
ÀÌ Å¬·¡½º´Â Java Collections Framework ¸â¹öÀÔ´Ï´Ù.
Object.hashCode()
,
Collection
,
Set
,
HashSet
,
TreeSet
,
Hashtable
,
Á÷·ÄÈ µÈ Çü½Ä »ý¼ºÀÚ °³¿ä | |
---|---|
LinkedHashSet ()
µðÆúÆ®ÀÇ Ãʱ⠿뷮 (16)°ú ºÎÇÏ °è¼ö (0.75)·Î »õ·Î¿î ºñ¾îÀÖ´Â ¸µÅ© ÇØ½Ã ¼¼Æ®¸¦ »ý¼ºÇÕ´Ï´Ù. |
|
LinkedHashSet (Collection <? extends E > 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
- Ãʱ⠿뷮ÀÌ Á¦·Îº¸´Ù ÀÛÀº °æ¿ìpublic LinkedHashSet()
public LinkedHashSet(Collection <? extends E > c)
c
- ¿ä¼Ò°¡ ¼¼Æ®¿¡ ¹èÄ¡µÇ´Â Ä÷º¼Ç
NullPointerException
- ÁöÁ¤µÈ Ä÷º¼ÇÀÌ null ÀÎ °æ¿ì
|
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 µµ ÂüÁ¶ÇϽʽÿÀ.