JavaTM 2 Platform
Standard Ed. 5.0

java.util
Ŭ·¡½º Collections

java.lang.Object 
  »óÀ§¸¦ È®Àå java.util.Collections

public class Collections
extends Object

ÀÌ Å¬·¡½º´Â Ä÷º¼Ç¿¡ ÀÛ¿ëÇÑ´Ù, ¶Ç´Â Ä÷º¼ÇÀ» µ¹·ÁÁÖ´Â static ¸Þ¼­µå¸¸À¸·Î ±¸¼ºµË´Ï´Ù. ÀÌ Å¬·¡½º¿¡´Â ÁöÁ¤µÈ Ä÷º¼ÇÀ» ±âº»À¸·Î ÇÑ »õ·Î¿î Ä÷º¼ÇÀ» µ¹·ÁÁÖ´Â ¡¸·¡ÆÛ¡¹ µî, Ä÷º¼Ç¿¡ ´ëÇؼ­ ÀÛ¿ëÇÏ´Â ´Ù¾çÇÑ ¾Ë°í¸®ÁòÀÌ ÀÖ½À´Ï´Ù.

ÀÌ Å¬·¡½ºÀÇ ¸Þ¼­µå¿¡ Á¦°øµÇ´Â Ä÷º¼Ç ¶Ç´Â Ŭ·¡½º °´Ã¼°¡ nullÀÎ °æ¿ì, ÀÌ Å¬·¡½ºÀÇ ¸Þ¼­µå´Â NullPointerExceptionÀ» ¸ðµÎ Throw ÇÕ´Ï´Ù.

ÀÌ Å¬·¡½º¿¡ ÀÖ´Â ´Ù¾çÇÑ ¾Ë°í¸®ÁòÀÇ ¹®¼­¿¡´Â º¸Åë, ¡¸±¸Çö¡¹ÀÇ °£´ÜÇÑ ¼³¸íÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ÀÌ ¼³¸íÀº ¡¸»ç¾ç¡¹ÀÇ ÀϺο¡¼­´Â ¾ø°í ¡¸±¸Çö Á¤º¸¡¹¶ó°í »ý°¢ÇØ ÁÖ¼¼¿ä. ±¸ÇöÀÚ´Â »ç¾ç¿¡ ¹ÝÇÏÁö ¾Ê´Â ÇÑ, ´Ù¸¥ ¾Ë°í¸®ÁòÀ» ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, sort°¡ »ç¿ëÇÏ´Â ¾Ë°í¸®ÁòÀº ¸ÓÁö ¼ÒÆ®ÀÏ ÇÊ¿ä´Â ¾ø½À´Ï´Ù¸¸, ¡¸°íÁ¤ (stable)¡¹ÀÇ ¾Ë°í¸®ÁòÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù.

Ä÷º¼ÇÀÌ set ¸Þ¼­µå¿Í °°ÀÌ ÀûÀýÇÑ º¯ÀÌ ¿ø½ÃÇü ¸Þ¼­µå¸¦ Áö¿ø ÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì, ÀÌ Å¬·¡½º (󸮵Ǵ Ä÷º¼ÇÀ» ¼öÁ¤ÇÏ´Â ¾Ë°í¸®Áò)¿¡ Æ÷ÇԵǾî ÀÖ´ø ¡¸Æı«Àû¡¹¾Ë°í¸®ÁòÀº, UnsupportedOperationExceptionÀ» Throw Çϵµ·Ï ÁöÁ¤µÇ°í ÀÖ½À´Ï´Ù. È£ÃâÀÌ Ä÷º¼Ç¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â °æ¿ì, ÀÌ·¯ÇÑ ¾Ë°í¸®ÁòÀº ¿¹¿Ü¸¦ Throw ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù¸¸, Çʼö°¡ ¾Æ´Õ´Ï´Ù. ¿¹¸¦ µé¾î ¼ÒÆ® ³¡³­ º¯°æ ºÒ°¡´ÉÇÑ ¸®½ºÆ®·Îsort ¸Þ¼­µå¸¦ È£ÃâÇϸé, UnsupportedOperationExceptionÀÌ ¹ß»ýµÇ´Â °æ¿ì¿Í Throw µÇÁö ¾Ê´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

ÀÌ Å¬·¡½º´Â Java Collections Framework ¸â¹öÀÔ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.2
°ü·Ã Ç׸ñ:
Collection, Set, List, Map

ÇÊµå °³¿ä
static List EMPTY_LIST
          ºñ¾îÀÖ´Â ¸®½ºÆ®ÀÔ´Ï´Ù (ºÒº¯).
static Map EMPTY_MAP
          ºñ¾îÀÖ´Â ¸ÊÀÔ´Ï´Ù (ºÒº¯).
static Set EMPTY_SET
          ºó¼¼Æ®ÀÔ´Ï´Ù (ºÒº¯).
 
¸Þ¼­µå °³¿ä
static
<T> boolean
addAll (Collection <? super T> c, T... a)
          ÁöÁ¤µÈ ¸ðµç ¿ä¼Ò°¡ ÁöÁ¤µÈ Ä÷º¼Ç¿¡ Ãß°¡ÇÕ´Ï´Ù.
static
<T> int
binarySearch (List <? extends Comparable <? super T>> list, T key)
          ¹ÙÀ̳ʸ® ¼­Ä¡ ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ, ÁöÁ¤µÈ ¸®½ºÆ®·ÎºÎÅÍ ÁöÁ¤µÈ °´Ã¼¸¦ °Ë»öÇÕ´Ï´Ù.
static
<T> int
binarySearch (List <? extends T> list, T key, Comparator <? super T> c)
          ¹ÙÀ̳ʸ® ¼­Ä¡ ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ, ÁöÁ¤µÈ ¸®½ºÆ®·ÎºÎÅÍ ÁöÁ¤µÈ °´Ã¼¸¦ °Ë»öÇÕ´Ï´Ù.
static
<E> Collection <E>
checkedCollection (Collection <E> c, Class <E> type)
          ÁöÁ¤µÈ Ä÷º¼ÇÀÇ, µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<E> List <E>
checkedList (List <E> list, Class <E> type)
          ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<K, V> Map <K, V>
checkedMap (Map <K, V> m, Class <K> keyType, Class <V> valueType)
          ÁöÁ¤µÈ ¸ÊÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<E> Set <E>
checkedSet (Set <E> s, Class <E> type)
          ÁöÁ¤µÈ ¼¼Æ®ÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<K, V> SortedMap <K, V>
checkedSortedMap (SortedMap <K, V> m, Class <K> keyType, Class <V> valueType)
          ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<E> SortedSet <E>
checkedSortedSet (SortedSet <E> s, Class <E> type)
          ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®ÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> void
copy (List <? super T> dest, List <? extends T> src)
          ÀÖ´Â ¸®½ºÆ®·ÎºÎÅÍ ´Ù¸¥ ¸®½ºÆ®¿¡ ¸ðµç ¿ä¼Ò¸¦ Ä«ÇÇÇÕ´Ï´Ù.
static boolean disjoint (Collection <? > c1, Collection <? > c2)
          ÁöÁ¤µÈ 2°³ÀÇ Ä÷º¼Ç¿¡ °øÅëÀÇ ¿ä¼Ò°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì, true¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> List <T>
emptyList ()
          ºñ¾îÀÖ´Â ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù (ºÒº¯).
static
<K, V> Map <K, V>
emptyMap ()
          ºñ¾îÀÖ´Â ¸ÊÀ» ¸®ÅÏÇÕ´Ï´Ù (ºÒº¯).
static
<T> Set <T>
emptySet ()
          ºó¼¼Æ® (ºÒº¯)¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> Enumeration <T>
enumeration (Collection <T> c)
          ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ¿­°Å¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> void
fill (List <? super T> list, T obj)
          ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¸ðµç ¿ä¼Ò°¡ ÁöÁ¤µÈ ¿ä¼Ò·Î ¿Å°Ü³õ½À´Ï´Ù.
static int frequency (Collection <? > c, Object  o)
          ÁöÁ¤µÈ Ä÷º¼Ç³»¿¡¼­ ÁöÁ¤µÈ °´Ã¼¿Í µî°¡ÀÎ ¿ä¼ÒÀÇ ¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static int indexOfSubList (List <? > source, List <? > target)
          ÁöÁ¤µÈ ¼Ò½º ¸®½ºÆ®³»¿¡¼­ ÁöÁ¤µÈ Ÿ°Ù ¸®½ºÆ®°¡ ÃÖÃÊ·Î ÃâÇöÇÑ À§Ä¡ÀÇ °³½Ã À§Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static int lastIndexOfSubList (List <? > source, List <? > target)
          ÁöÁ¤µÈ ¼Ò½º ¸®½ºÆ®³»¿¡¼­ ¸¶Áö¸·¿¡ ÃâÇöÇÑ ÁöÁ¤ Ÿ°Ù ¸®½ºÆ®ÀÇ °³½Ã À§Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> ArrayList <T>
list (Enumeration <T> e)
          ÁöÁ¤µÈ ¿­°Å¿¡ ÀÇÇØ ¸®ÅÏµÈ ¿ä¼Ò¸¦ Æ÷ÇÔÇÑ ¹è¿­ ¸®½ºÆ®¸¦, ¸®ÅÏµÈ Â÷·Ê·Î ¸®ÅÏÇÕ´Ï´Ù.
static
<T extends Object & Comparable <? super T>>
T
max (Collection <? extends T> coll)
          ¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¿¡ µû¶ó, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ´ëÀÇ ¿ä¼Ò¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> T
max (Collection <? extends T> coll, Comparator <? super T> comp)
          ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ°¡ °¡¸®Å°´Â ¼ø¼­¿¡ µû¶ó, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ´ëÀÇ ¿ä¼Ò¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T extends Object & Comparable <? super T>>
T
min (Collection <? extends T> coll)
          ¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¿¡ µû¶ó, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ¼ÒÀÇ ¿ä¼Ò¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> T
min (Collection <? extends T> coll, Comparator <? super T> comp)
          ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ°¡ °¡¸®Å°´Â ¼ø¼­¿¡ µû¶ó, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ¼ÒÀÇ ¿ä¼Ò¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> List <T>
nCopies (int n, T o)
          ÁöÁ¤µÈ °´Ã¼ÀÇ n°³ÀÇ Ä«ÇÇ·Î ±¸¼ºµÇ´Â ºÒº¯ÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> boolean
replaceAll (List <T> list, T oldVal, T newVal)
          ¸®½ºÆ®³»¿¡ ÃâÇöÇÏ´Â ÁöÁ¤µÈ °ªÀ» ¸ðµÎ ´Ù¸¥ °ª¿¡ ¿Å°Ü³õ½À´Ï´Ù.
static void reverse (List <? > list)
          ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¿ä¼ÒÀÇ ¼ø¼­¸¦ ¹Ý´ë·Î ÇÕ´Ï´Ù.
static
<T> Comparator <T>
reverseOrder ()
          Comparable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °´Ã¼ÀÇ Ä÷º¼ÇÀ¸·Î ¡¸ÀÚ¿¬ Á¤·Ä¡¹ÀÇ ¿ªÀ» ¹«È­ ÇÏ´Â ÄÄÆÛ·¹ÀÌÅ͸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> Comparator <T>
reverseOrder (Comparator <T> cmp)
          ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ ÀÇ ¿ª¼ø¼­¸¦ ¹«È­ ÇÏ´Â ÄÄÆÛ·¹ÀÌÅ͸¦ ¸®ÅÏÇÕ´Ï´Ù.
static void rotate (List <? > list, int distance)
          ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¿ä¼Ò¸¦, ÁöÁ¤µÈ °Å¸®¿¡ ÀÇÇØ È¸ÀüÇÕ´Ï´Ù.
static void shuffle (List <? > list)
          µðÆúÆ®ÀÇ random number generationÀÇ ¿øÀ» »ç¿ëÇØ, ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¼ø¼­¸¦ ¹«ÀÛÀ§·Î ¹Ù²ã ³Ö½À´Ï´Ù.
static void shuffle (List <? > list, Random  rnd)
          µðÆúÆ®ÀÇ random number generationÀÇ ¿øÀ» »ç¿ëÇØ, ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¼ø¼­¸¦ ¹«ÀÛÀ§·Î ¹Ù²ã ³Ö½À´Ï´Ù.
static
<T> Set <T>
singleton (T o)
          ÁöÁ¤µÈ °´Ã¼¸¸À» Æ÷ÇÔÇÏ°í ÀÖ´Â ºÒº¯¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> List <T>
singletonList (T o)
          ÁöÁ¤µÈ °´Ã¼¸¸À» Æ÷ÇÔÇÏ°í ÀÖ´Â ºÒº¯ÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<K, V> Map <K, V>
singletonMap (K key, V value)
          ÁöÁ¤µÈ °ªÀ¸·Î ÁöÁ¤µÈ °´Ã¼¸¸À» ¸ÅÇÎ ÇÏ´Â ºÒº¯ÀÇ ¸ÊÀ» ¸®ÅÏÇÕ´Ï´Ù.
static
<T extends Comparable <? super T>>
void
sort (List <T> list)
          ¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¿¡ µû¶ó, ÁöÁ¤µÈ ¸®½ºÆ®¸¦ ½Â¼ø¿¡ ¼ÒÆ® ÇÕ´Ï´Ù.
static
<T> void
sort (List <T> list, Comparator <? super T> c)
          ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ°¡ °¡¸®Å°´Â ¼ø¼­¿¡ µû¶ó, ÁöÁ¤µÈ ¸®½ºÆ®¸¦ ¼ÒÆ® ÇÕ´Ï´Ù.
static void swap (List <? > list, int i, int j)
          ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ÁöÁ¤µÈ À§Ä¡¿¡ ÀÖ´Â ¿ä¼Ò¸¦ ½º¿Ò ÇÕ´Ï´Ù.
static
<T> Collection <T>
synchronizedCollection (Collection <T> c)
          ÁöÁ¤µÈ Ä÷º¼ÇÀ» ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) Ä÷º¼ÇÀ» ¸®ÅÏÇÕ´Ï´Ù.
static
<T> List <T>
synchronizedList (List <T> list)
          ÁöÁ¤µÈ ¸®½ºÆ®¸¦ ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<K, V> Map <K, V>
synchronizedMap (Map <K, V> m)
          ÁöÁ¤µÈ ¸ÊÀ» ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¸ÊÀ» ¸®ÅÏÇÕ´Ï´Ù.
static
<T> Set <T>
synchronizedSet (Set <T> s)
          ÁöÁ¤µÈ ¼¼Æ®¸¦ ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<K, V> SortedMap <K, V>
synchronizedSortedMap (SortedMap <K, V> m)
          ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀ» ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¼ÒÆ® ¸ÊÀ» ¸®ÅÏÇÕ´Ï´Ù.
static
<T> SortedSet <T>
synchronizedSortedSet (SortedSet <T> s)
          ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®¸¦ ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¼ÒÆ® ¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> Collection <T>
unmodifiableCollection (Collection <? extends T> c)
          ÁöÁ¤µÈ Ä÷º¼ÇÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> List <T>
unmodifiableList (List <? extends T> list)
          ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<K, V> Map <K, V>
unmodifiableMap (Map <? extends K,? extends V> m)
          ÁöÁ¤µÈ ¸ÊÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> Set <T>
unmodifiableSet (Set <? extends T> s)
          ÁöÁ¤µÈ ¼¼Æ®ÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<K, V> SortedMap <K, V>
unmodifiableSortedMap (SortedMap <K,? extends V> m)
          ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
static
<T> SortedSet <T>
unmodifiableSortedSet (SortedSet <T> s)
          ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®ÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù.
 
Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

ÇʵåÀÇ »ó¼¼

EMPTY_SET

public static final Set  EMPTY_SET
ºó¼¼Æ®ÀÔ´Ï´Ù (ºÒº¯). ÀÌ ¼¼Æ®´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

°ü·Ã Ç׸ñ:
emptySet()

EMPTY_LIST

public static final List  EMPTY_LIST
ºñ¾îÀÖ´Â ¸®½ºÆ®ÀÔ´Ï´Ù (ºÒº¯). ÀÌ ¸®½ºÆ®´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

°ü·Ã Ç׸ñ:
emptyList()

EMPTY_MAP

public static final Map  EMPTY_MAP
ºñ¾îÀÖ´Â ¸ÊÀÔ´Ï´Ù (ºÒº¯). ÀÌ ¸ÊÀº Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.3
°ü·Ã Ç׸ñ:
emptyMap()
¸Þ¼­µåÀÇ »ó¼¼

sort

public static <T extends Comparable <?  super T>> void sort(List <T> list)
¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¿¡ µû¶ó, ÁöÁ¤µÈ ¸®½ºÆ®¸¦ ½Â¼ø¿¡ ¼ÒÆ® ÇÕ´Ï´Ù. ¸®½ºÆ®ÀÇ ¸ðµç ¿ä¼Ò´Â Comparable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ÀÖÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. °Ô´Ù°¡ ¸®½ºÆ®ÀÇ ¸ðµç ¿ä¼Ò´Â ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. Áï, e1.compareTo(e2)´Â ¸®½ºÆ®ÀÇ ¿ä¼Ò°¡ e1¿Í e2ÀÎ °æ¿ì, ClassCastExceptionÀ» Throw ÇØ¾ß ÇÏÁö´Â ¾Ê½À´Ï´Ù.

ÀÌ ¼ÒÆ®´Â °íÁ¤ÀÎ °ÍÀÌ º¸ÁõµÇ°í ÀÖ½À´Ï´Ù. Áï, ¼ÒÆ®¸¦ ½ÇÇàÇصµ, µ¿µîÀÇ ¿ä¼ÒÀÇ ¼ø¼­´Â ¹Ù²îÁö ¾Ê½À´Ï´Ù.

ÁöÁ¤µÈ ¸®½ºÆ®´Â º¯°æ °¡´ÉÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù¸¸, »çÀÌÁî º¯°æÀº ÇÒ ¼ö ¾ø¾îµµ ±¦Âú½À´Ï´Ù.

¼ÒÆ® ¾Ë°í¸®ÁòÀº ¼öÁ¤ ¸ÓÁö ¼ÒÆ®ÀÔ´Ï´Ù. ÀÌ ¼ÒÆ®¿¡¼­´Â ÇÏÀ§ÀÇ »çºê¸® Æľ÷¿¡ À־ÀÇ ÃÖ°í ·¹º§ÀÇ ¿ä¼Ò°¡ »óÀ§ÀÇ »çºê¸® Æľ÷¿¡ À־ÀÇ ÃÖÀú ·¹º§ÀÇ ¿ä¼Òº¸´Ù ÀÛÀº °æ¿ì, ¸ÓÁö´Â »ý·« µË´Ï´Ù. ÀÌ ¾Ë°í¸®ÁòÀº Ç×»ó n log(n)ÀÇ ÆÛÆ÷¸Õ½º¸¦ Á¦°øÇÕ´Ï´Ù.ÀÌ ±¸ÇöÀº ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¹è¿­¿¡ÀÇ ´ýÇÁ, ¹è¿­ÀÇ ¼ÒÆ®, ¸®½ºÆ®¿¡¼­ÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇÏ´Â °ÍÀ¸·Î ¹è¿­ÀÇ ´ëÀÀÇÏ´Â À§Ä¡·ÎºÎÅÍ °¢ ¿ä¼Ò¸¦ Àç¼³Á¤ÇÕ´Ï´Ù. ÀÌ°ÍÀº ¸µÅ©µÈ ¸®½ºÆ®¸¦ Àû¼Ò¿¡ ¼ÒÆ® ÇÏ·Á°í ÇßÀ» °æ¿ìÀÇ n2 log(n)ÀÇ ÆÛÆ÷¸Õ½º°¡ µÇ´Â °ÍÀ» ȸÇÇÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - ¼ÒÆ® µÇ´Â ¸®½ºÆ®
¿¹¿Ü:
ClassCastException - ¸®½ºÆ®¿¡ ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ñ ¿ä¼Ò (¿¹¸¦ µé¾î ij¸¯ÅÍ ¶óÀΰú Á¤¼ö)°¡ ÀÖ´Â °æ¿ì
UnsupportedOperationException - ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¸®½ºÆ® ¹Ýº¹ÀÚ°¡ set ¿ÀÆÛ·¹À̼ÇÀ» Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
Comparable

sort

public static <T> void sort(List <T> list,
                            Comparator <?  super T> c)
ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ°¡ °¡¸®Å°´Â ¼ø¼­¿¡ µû¶ó, ÁöÁ¤µÈ ¸®½ºÆ®¸¦ ¼ÒÆ® ÇÕ´Ï´Ù. ¸®½ºÆ®ÀÇ ¸ðµç ¿ä¼Ò´Â ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ¿¡ ÀÇÇØ ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. Áï, c.compare(e1, e2)´Â ¸®½ºÆ®ÀÇ ¿ä¼Ò°¡ e1¿Í e2ÀÎ °æ¿ì ClassCastExceptionÀ» Throw ÇØ¾ß ÇÏÁö´Â ¾Ê½À´Ï´Ù.

ÀÌ ¼ÒÆ®´Â °íÁ¤ÀÎ °ÍÀÌ º¸ÁõµÇ°í ÀÖ½À´Ï´Ù. Áï, ¼ÒÆ®¸¦ ½ÇÇàÇصµ, µ¿µîÀÇ ¿ä¼ÒÀÇ ¼ø¼­´Â ¹Ù²îÁö ¾Ê½À´Ï´Ù.

¼ÒÆ® ¾Ë°í¸®ÁòÀº ¼öÁ¤ ¸ÓÁö ¼ÒÆ®ÀÔ´Ï´Ù. ÀÌ ¼ÒÆ®¿¡¼­´Â ÇÏÀ§ÀÇ »çºê¸® Æľ÷¿¡ À־ÀÇ ÃÖ°í ·¹º§ÀÇ ¿ä¼Ò°¡ »óÀ§ÀÇ »çºê¸® Æľ÷¿¡ À־ÀÇ ÃÖÀú ·¹º§ÀÇ ¿ä¼Òº¸´Ù ÀÛÀº °æ¿ì, ¸ÓÁö´Â »ý·« µË´Ï´Ù. ÀÌ ¾Ë°í¸®ÁòÀº Ç×»ó n log(n)ÀÇ ÆÛÆ÷¸Õ½º¸¦ Á¦°øÇÕ´Ï´Ù. ÁöÁ¤µÈ ¸®½ºÆ®´Â º¯°æ °¡´ÉÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù¸¸, »çÀÌÁî º¯°æÀº ÇÒ ¼ö ¾ø¾îµµ ±¦Âú½À´Ï´Ù. ÀÌ ±¸ÇöÀº ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¹è¿­¿¡ÀÇ ´ýÇÁ, ¹è¿­ÀÇ ¼ÒÆ®, ¸®½ºÆ®ÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇÏ´Â °ÍÀ¸·Î ¹è¿­ÀÇ ´ëÀÀÇÏ´Â À§Ä¡·ÎºÎÅÍ °¢ ¿ä¼Ò¸¦ Àç¼³Á¤ÇÕ´Ï´Ù. ÀÌ°ÍÀº ¸µÅ©µÈ ¸®½ºÆ®¸¦ Àû¼Ò¿¡ ¼ÒÆ® ÇÏ·Á°í ÇßÀ» °æ¿ìÀÇ n2 log(n)ÀÇ ÆÛÆ÷¸Õ½º°¡ µÇ´Â °ÍÀ» ȸÇÇÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - ¼ÒÆ® µÇ´Â ¸®½ºÆ®
c - ¸®½ºÆ®ÀÇ ¼ø¼­¸¦ °áÁ¤ÇÏ´Â ÄÄÆÛ·¹ÀÌÅÍ. null Ä¡´Â ¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¸¦ »ç¿ëÇÏ´Â °ÍÀ» ³ªÅ¸³½´Ù
¿¹¿Ü:
ClassCastException - ¸®½ºÆ®·Î ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ ·Î ¡¸¼­·Î ºñ±³¡¹ÇÒ ¼ö ¾ø´Â ¿ä¼Ò°¡ ÀÖ´Â °æ¿ì
UnsupportedOperationException - ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¸®½ºÆ® ¹Ýº¹ÀÚ°¡ set ¿ÀÆÛ·¹À̼ÇÀ» Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
°ü·Ã Ç׸ñ:
Comparator

binarySearch

public static <T> int binarySearch(List <?  extends Comparable <?  super T>> list,
                                   T key)
¹ÙÀ̳ʸ® ¼­Ä¡ ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ, ÁöÁ¤µÈ ¸®½ºÆ®·ÎºÎÅÍ ÁöÁ¤µÈ °´Ã¼¸¦ °Ë»öÇÕ´Ï´Ù. ¸®½ºÆ®´Â ÀÌ È£ÃâÀü¿¡ Àü¼úÀÇ sort(List) ¸Þ¼­µå¸¦ »ç¿ëÇØ ¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¿¡ µû¶ó ½Â¼ø¿¡ ¼ÒÆ® ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ¼ÒÆ®µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, °á°ú´Â Á¤ÀǵÇÁö ¾Ê½À´Ï´Ù. ÁöÁ¤µÈ °´Ã¼¿Í µ¿ÀÏÇÑ ¿ä¼Ò°¡ ¸®½ºÆ®¿¡ ´Ù¼ö ÀÖ´Â °æ¿ì, ¾î¶² °ÍÀÌ ¹ß°ßµÉ±î´Â º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.

¡¸·£´ý ¾×¼¼½º¡¹¸®½ºÆ®ÀÇ °æ¿ì, ÀÌ ¸Þ¼­µå´Â log(n) ½Ã°£¿¡ µ¿ÀÛÇÕ´Ï´Ù (À§Ä¡¸¦ ÁöÁ¤ÇÑ ¾×¼¼½º¿¡ °ÅÀÇ ÀÏÁ¤ÇÑ ½Ã°£ÀÌ ÇÊ¿ä). ÁöÁ¤µÈ ¸®½ºÆ®°¡ RandomAccess ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÁö ¾Ê°í, Å« ¸®½ºÆ®ÀÎ °æ¿ì, ÀÌ ¸Þ¼­µå´Â O(n) ¸µÅ© traversal¿Í O(log n) ¿ä¼Ò ºñ±³¸¦ ½ÇÇàÇÏ´Â ¹Ýº¹ÀÚ º£À̽ºÀÇ ¹ÙÀ̳ʸ® ¼­Ä¡¸¦ ½Ç½ÃÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - °Ë»öµÇ´Â ¸®½ºÆ®
key - °Ë»öµÇ´Â Å°
¹Ýȯ°ª:
¸®½ºÆ®¿¡ °Ë»ö Å°°¡ ÀÖ´Â °æ¿ì´Â °Ë»ö Å°ÀÇ À妽º. °Ë»ö Å°°¡ ¸®½ºÆ®¿¡ ¾ø´Â °æ¿ì´Â (-(»ðÀÔ Æ÷ÀÎÆ®) - 1). »ðÀÔ Æ÷ÀÎÆ®¶õ ¸®½ºÆ®·Î Å°°¡ »ðÀԵǴ Æ÷ÀÎÆ®ÀÌ´Ù. Áï, Å°º¸´Ù Å« ÃÖÃÊÀÇ ¿ä¼ÒÀÇ À妽ºÀΰ¡ ¸®½ºÆ®ÀÇ ¸ðµç ¿ä¼Ò°¡ ÁöÁ¤µÈ Å°º¸´Ù ÀÛÀº °æ¿ì´Â list.size(). ÀÌ°Í¿¡ ÀÇÇØ Å°°¡ ¹ß°ßµÇ¾úÀ» °æ¿ì¿¡¸¸ ¹Ýȯ°ªÀÌ >= 0 ÀÌ µÇ´Â °ÍÀÌ º¸ÁõµÈ´Ù
¿¹¿Ü:
ClassCastException - ¸®½ºÆ®¿¡ ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ñ ¿ä¼Ò (¿¹¸¦ µé¾î ij¸¯ÅÍ ¶óÀΰú Á¤¼ö)°¡ ÀÖ´Â °æ¿ì, ¶Ç´Â °Ë»ö Å°°¡ ¸®½ºÆ®ÀÇ ¿ä¼Ò·Î ¼­·Î ºñ±³ °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
°ü·Ã Ç׸ñ:
Comparable, sort(List)

binarySearch

public static <T> int binarySearch(List <?  extends T> list,
                                   T key,
                                   Comparator <?  super T> c)
¹ÙÀ̳ʸ® ¼­Ä¡ ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ, ÁöÁ¤µÈ ¸®½ºÆ®·ÎºÎÅÍ ÁöÁ¤µÈ °´Ã¼¸¦ °Ë»öÇÕ´Ï´Ù. ¸®½ºÆ®´Â ÀÌ È£ÃâÀü¿¡ Sort(List, Comparator) ¸Þ¼­µå¸¦ »ç¿ëÇØ, ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ¿¡ µû¶ó ½Â¼ø¿¡ ¼ÒÆ® ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ¸®½ºÆ®°¡ ¼ÒÆ®µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, °á°ú´Â Á¤ÀǵÇÁö ¾Ê½À´Ï´Ù. ÁöÁ¤µÈ °´Ã¼¿Í µ¿ÀÏÇÑ ¿ä¼Ò°¡ ¸®½ºÆ®¿¡ ´Ù¼ö ÀÖ´Â °æ¿ì, ¾î¶² °ÍÀÌ ¹ß°ßµÉ±î´Â º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.

¡¸·£´ý ¾×¼¼½º¡¹¸®½ºÆ®ÀÇ °æ¿ì, ÀÌ ¸Þ¼­µå´Â log(n) ½Ã°£¿¡ µ¿ÀÛÇÕ´Ï´Ù (À§Ä¡¸¦ ÁöÁ¤ÇÑ ¾×¼¼½º¿¡ °ÅÀÇ ÀÏÁ¤ÇÑ ½Ã°£ÀÌ ÇÊ¿ä). ÁöÁ¤µÈ ¸®½ºÆ®°¡ RandomAccess ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÁö ¾Ê°í, Å« ¸®½ºÆ®ÀÎ °æ¿ì, ÀÌ ¸Þ¼­µå´Â O(n) ¸µÅ© traversal¿Í O(log n) ¿ä¼Ò ºñ±³¸¦ ½ÇÇàÇÏ´Â ¹Ýº¹ÀÚ º£À̽ºÀÇ ¹ÙÀ̳ʸ® ¼­Ä¡¸¦ ½Ç½ÃÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - °Ë»öµÇ´Â ¸®½ºÆ®
key - °Ë»öµÇ´Â Å°
c - ¸®½ºÆ®°¡ Á¤·Ä µÇ´Â ÄÄÆÛ·¹ÀÌÅÍ. null Ä¡´Â ¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¸¦ »ç¿ëÇÏ´Â °ÍÀ» ³ªÅ¸³½´Ù
¹Ýȯ°ª:
¸®½ºÆ®¿¡ °Ë»ö Å°°¡ ÀÖ´Â °æ¿ì´Â °Ë»ö Å°ÀÇ À妽º. °Ë»ö Å°°¡ ¸®½ºÆ®¿¡ ¾ø´Â °æ¿ì´Â (-(»ðÀÔ Æ÷ÀÎÆ®) - 1). »ðÀÔ Æ÷ÀÎÆ®¶õ ¸®½ºÆ®·Î Å°°¡ »ðÀԵǴ Æ÷ÀÎÆ®ÀÌ´Ù. Áï, Å°º¸´Ù Å« ÃÖÃÊÀÇ ¿ä¼ÒÀÇ À妽ºÀΰ¡ ¸®½ºÆ®ÀÇ ¸ðµç ¿ä¼Ò°¡ ÁöÁ¤µÈ Å°º¸´Ù ÀÛÀº °æ¿ì´Â list.size(). ÀÌ°Í¿¡ ÀÇÇØ Å°°¡ ¹ß°ßµÇ¾úÀ» °æ¿ì¿¡¸¸ ¹Ýȯ°ªÀÌ >= 0 ÀÌ µÇ´Â °ÍÀÌ º¸ÁõµÈ´Ù
¿¹¿Ü:
ClassCastException - ¸®½ºÆ®·Î ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ ·Î ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ñ ¿ä¼Ò°¡ ÀÖ´Â °æ¿ì, ¶Ç´Â °Ë»ö Å°°¡ ÀÌ ÄÄÆÛ·¹ÀÌÅ͸¦ »ç¿ëÇØ ¸®½ºÆ®ÀÇ ¿ä¼Ò·Î ¼­·Î ºñ±³ÇÒ ¼ö ¾ø´Â °æ¿ì
°ü·Ã Ç׸ñ:
Comparable, sort(List, Comparator)

reverse

public static void reverse(List <? > list)
ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¿ä¼ÒÀÇ ¼ø¼­¸¦ ¹Ý´ë·Î ÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â 1 Â÷ ½Ã°£¿¡ µ¿ÀÛÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - ¿ä¼ÒÀÇ ¼ø¼­°¡ ¹Ý´ë·Î µÇ´Â ¸®½ºÆ®
¿¹¿Ü:
UnsupportedOperationException - ÁöÁ¤µÈ ¸®½ºÆ® ¶Ç´Â ±× ¸®½ºÆ® ¹Ýº¹ÀÚ°¡ set ¸Þ¼­µå¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì

shuffle

public static void shuffle(List <? > list)
µðÆúÆ®ÀÇ random number generationÀÇ ¿øÀ» »ç¿ëÇØ, ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¼ø¼­¸¦ ¹«ÀÛÀ§·Î ¹Ù²ã ³Ö½À´Ï´Ù. ¸ðµç Æí¼ºÀÌ, °ÅÀÇ ±ÕµîÀÎ È®·ü·Î ¹ß»ýÇÕ´Ï´Ù.

»ó±âÀÇ ¼³¸íÀ¸·Î ¡¸°ÅÀÇ¡¹¶ó°í ÇÏ´Â ¸»À» »ç¿ëÇÏ°í ÀÖ´Â °ÍÀº random number generationÀÇ ¿øÀÌ µÇ´Â µðÆúÆ®ÀÇ ¼Ò½º°¡ µ¶¸³ÇØ ¼±ÅÃµÈ ºñÆ®ÀÇ ¼Ò½º·Î¼­ ÆíÇâÀÌ ¾ø´Â °ÍÀº ±Ù»çÀûÀ¸·Î ¸¶¼Å ¼º¸³Çϱ⠶§¹®ÀÔ´Ï´Ù. ·£´ý¿¡ ¼±ÅÃµÈ ¿ÏÀüÇÑ ¼Ò½ºÀ̸é, ¾Ë°í¸®ÁòÀÌ Æí¼ºÀ» ¼±ÅÃÇÏ´Â È®·üÀº ¿ÏÀüÇÏ°Ô ÇÑ°á°°°Ô µË´Ï´Ù.

ÀÌ ±¸ÇöÀº ¸®½ºÆ®ÀÇ ¸¶Áö¸· ¿ä¼Ò·ÎºÎÅÍ 2¹ø°ÀÇ ¿ä¼Ò±îÁö ¿ª¹æÇâÀ¸·Î ´õµë¾î, ¹«ÀÛÀ§·Î ¼±ÅÃµÈ ¿ä¼Ò¸¦ ¡¸ÇöÀçÀÇ À§Ä¡¡¹¿¡ ¹Ýº¹ÇØ ¹Ù²ã ³Ö½À´Ï´Ù. ¿ä¼Ò´Â ¸®½ºÆ®ÀÇ ÃÖÃÊÀÇ ¿ä¼Ò·ÎºÎÅÍ ÇöÀçÀÇ À§Ä¡±îÁöÀÇ ¹üÀ§¿¡¼­ ¹«ÀÛÀ§·Î ¼±Åõ˴ϴÙ.

ÀÌ ¸Þ¼­µå´Â 1 Â÷ ½Ã°£¿¡ µ¿ÀÛÇÕ´Ï´Ù. ÁöÁ¤µÈ ¸®½ºÆ®°¡ RandomAccess ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÁö ¾Ê´Â Å« ¸®½ºÆ®ÀÎ °æ¿ì, ¸®½ºÆ®ÀÇ ¼ø¼­¸¦ ¹Ù²ã ³Ö±â Àü¿¡ ÀÌ ±¸ÇöÀº ÁöÁ¤µÈ ¸®½ºÆ®¸¦ ¹è¿­¿¡ ´ýÇÁ ÇØ, ´ÙÀ½À¸·Î ¹Ù²Ù¾î ³ÖÀº ¹è¿­À» ¸®½ºÆ®¿¡ ´ýÇÁÀÇÇØ µÇµ¹¸³´Ï´Ù. ÀûÀýÈ÷ ¡¸Â÷·ÊÂ÷·Ê ¾×¼¼½º¡¹¸®½ºÆ®ÀÇ ¼ø¼­¸¦ ¹Ù²ã ³Ö´Â °Í¿¡ ÀÇÇØ ÀϾ´Â 2 Â÷ µ¿ÀÛÀ» ÇÇÇϱ⠶§¹®¿¡ÀÔ´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - ¼ø¼­¸¦ ¹Ù²ã ³ÖÀ» ¼ö ÀÖ´Â ¸®½ºÆ®
¿¹¿Ü:
UnsupportedOperationException - ÁöÁ¤µÈ ¸®½ºÆ® ¶Ç´Â ±× ¸®½ºÆ® ¹Ýº¹ÀÚ°¡ set ¸Þ¼­µå¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì

shuffle

public static void shuffle(List <? > list,
                           Random  rnd)
µðÆúÆ®ÀÇ random number generationÀÇ ¿øÀ» »ç¿ëÇØ, ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¼ø¼­¸¦ ¹«ÀÛÀ§·Î ¹Ù²ã ³Ö½À´Ï´Ù. random number generationÀÇ ¿øÀÌ ÇÑ°á°°À¸¸é, ¸ðµç Æí¼ºÀº ±ÕµîÀÎ È®·ü·Î ¹ß»ýÇÕ´Ï´Ù.

ÀÌ ±¸ÇöÀº ¸®½ºÆ®ÀÇ ¸¶Áö¸· ¿ä¼Ò·ÎºÎÅÍ 2¹ø°ÀÇ ¿ä¼Ò±îÁö ¿ª¹æÇâÀ¸·Î ´õµë¾î, ¹«ÀÛÀ§·Î ¼±ÅÃµÈ ¿ä¼Ò¸¦ ¡¸ÇöÀçÀÇ À§Ä¡¡¹¿¡ ¹Ýº¹ÇØ ¹Ù²ã ³Ö½À´Ï´Ù. ¿ä¼Ò´Â ¸®½ºÆ®ÀÇ ÃÖÃÊÀÇ ¿ä¼Ò·ÎºÎÅÍ ÇöÀçÀÇ À§Ä¡±îÁöÀÇ ¹üÀ§¿¡¼­ ¹«ÀÛÀ§·Î ¼±Åõ˴ϴÙ.

ÀÌ ¸Þ¼­µå´Â 1 Â÷ ½Ã°£¿¡ µ¿ÀÛÇÕ´Ï´Ù. ÁöÁ¤µÈ ¸®½ºÆ®°¡ RandomAccess ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÁö ¾Ê´Â Å« ¸®½ºÆ®ÀÎ °æ¿ì, ¸®½ºÆ®ÀÇ ¼ø¼­¸¦ ¹Ù²ã ³Ö±â Àü¿¡ ÀÌ ±¸ÇöÀº ÁöÁ¤µÈ ¸®½ºÆ®¸¦ ¹è¿­¿¡ ´ýÇÁ ÇØ, ´ÙÀ½À¸·Î ¹Ù²Ù¾î ³ÖÀº ¹è¿­À» ¸®½ºÆ®¿¡ ´ýÇÁÀÇÇØ µÇµ¹¸³´Ï´Ù. ÀûÀýÈ÷ ¡¸Â÷·ÊÂ÷·Ê ¾×¼¼½º¡¹¸®½ºÆ®ÀÇ ¼ø¼­¸¦ ¹Ù²ã ³Ö´Â °Í¿¡ ÀÇÇØ ÀϾ´Â 2 Â÷ µ¿ÀÛÀ» ÇÇÇϱ⠶§¹®¿¡ÀÔ´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - ¼ø¼­¸¦ ¹Ù²ã ³ÖÀ» ¼ö ÀÖ´Â ¸®½ºÆ®
rnd - ¸®½ºÆ®ÀÇ ¼ø¼­¸¦ ¹Ù²ã ³Ö±â À§Çؼ­ »ç¿ëÇÏ´Â random number generationÀÇ ¿ø
¿¹¿Ü:
UnsupportedOperationException - ÁöÁ¤µÈ ¸®½ºÆ® ¶Ç´Â ±× ¸®½ºÆ® ¹Ýº¹ÀÚ°¡ set ¿ÀÆÛ·¹À̼ÇÀ» Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì

swap

public static void swap(List <? > list,
                        int i,
                        int j)
ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ÁöÁ¤µÈ À§Ä¡¿¡ ÀÖ´Â ¿ä¼Ò¸¦ ½º¿Ò ÇÕ´Ï´Ù. ÁöÁ¤µÈ À§°ªÀÌ °°Àº °æ¿ì, ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇصµ, ¸®½ºÆ®´Â º¯°æµÇÁö ¾Ê½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - ¿ä¼Ò¸¦ ½º¿Ò ÇÏ´Â ¸®½ºÆ®
i - ½º¿Ò µÇ´Â 1°³ÀÇ ¿ä¼ÒÀÇ À妽º
j - ½º¿Ò µÇ´Â ÀÌÁ¦(ÀÌ¹Ì ) 1°³ÀÇ ¿ä¼ÒÀÇ À妽º
¿¹¿Ü:
IndexOutOfBoundsException - i ¶Ç´Â j Áß ÇÑÂÊÀÌ ¹üÀ§¿ÜÀÇ °æ¿ì (i < 0 || i >= list.size() || j < 0 || j >= list.size())
µµÀÔµÈ ¹öÀü :
1.4

fill

public static <T> void fill(List <?  super T> list,
                            T obj)
ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¸ðµç ¿ä¼Ò°¡ ÁöÁ¤µÈ ¿ä¼Ò·Î ¿Å°Ü³õ½À´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â 1 Â÷ ½Ã°£¿¡ µ¿ÀÛÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - ÁöÁ¤µÈ ¿ä¼Ò°¡ »ðÀԵǴ ¸®½ºÆ®
obj - ÁöÁ¤µÈ ¸®½ºÆ®¿¡ »ðÀԵǴ ¿ä¼Ò
¿¹¿Ü:
UnsupportedOperationException - ÁöÁ¤µÈ ¸®½ºÆ® ¶Ç´Â ±× ¸®½ºÆ® ¹Ýº¹ÀÚ°¡ set ¿ÀÆÛ·¹À̼ÇÀ» Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì

copy

public static <T> void copy(List <?  super T> dest,
                            List <?  extends T> src)
¾î´À ¸®½ºÆ®·ÎºÎÅÍ ´Ù¸¥ ¸®½ºÆ®¿¡ ¸ðµç ¿ä¼Ò¸¦ Ä«ÇÇÇÕ´Ï´Ù. ÀÌ ¿ÀÆÛ·¹À̼ÇÀÇµÚ Ä«ÇÇóÀÇ ¸®½ºÆ®¿¡ Ä«ÇÇµÈ °¢ ¿ä¼ÒÀÇ À妽º´Â Ä«ÇÇ¿øÀÇ ¸®½ºÆ®ÀÇ À妽º¿Í °°°Ô µË´Ï´Ù. Ä«ÇÇóÀÇ ¸®½ºÆ®´Â Àû¾îµµ Ä«ÇÇ¿øÀÇ ¸®½ºÆ®¿Í °°Àº ±æÀÌ°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. Ä«ÇÇóÀÇ ¸®½ºÆ®°¡ ±ä °æ¿ì¿¡¼­µµ, Ä«ÇÇóÀÇ ¸®½ºÆ®ÀÇ ³ª¸ÓÁöÀÇ ¿ä¼Ò´Â ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â 1 Â÷ ½Ã°£¿¡ µ¿ÀÛÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
dest - Ä«ÇÇóÀÇ ¸®½ºÆ®
src - Ä«ÇÇ¿øÀÇ ¸®½ºÆ®
¿¹¿Ü:
IndexOutOfBoundsException - Ä«ÇÇóÀÇ ¸®½ºÆ®°¡ Ä«ÇÇ¿øÀÇ ¸®½ºÆ® Àüü¸¦ Æ÷ÇÔÇϱ⿡´Â ³Ê¹« ÀÛÀº °æ¿ì
UnsupportedOperationException - Ä«ÇÇ ¸®½ºÆ®ÀÇ ¸®½ºÆ® ¹Ýº¹ÀÚ°¡ set ¿ÀÆÛ·¹À̼ÇÀ» Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì

min

public static <T extends Object  & Comparable <?  super T>> T min(Collection <?  extends T> coll)
¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¿¡ µû¶ó, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ¼ÒÀÇ ¿ä¼Ò¸¦ ¸®ÅÏÇÕ´Ï´Ù. Ä÷º¼ÇÀÇ ¸ðµç ¿ä¼Ò´Â Comparable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ÀÖÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. °Ô´Ù°¡ Ä÷º¼ÇÀÇ ¸ðµç ¿ä¼Ò´Â ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. Áï, e1.compareTo(e2)´Â Ä÷º¼ÇÀÇ ¿ä¼Ò°¡ e1 ¹× e2ÀÎ °æ¿ì ClassCastExceptionÀ» Throw ÇØ¾ß ÇÏÁö´Â ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â Ä÷º¼Ç Àüü·Î ¹Ýº¹ 󸮸¦ ½Ç½ÃÇϹǷΠÄ÷º¼ÇÀÇ »çÀÌÁî¿¡ ºñ·ÊÇÑ ½Ã°£ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
coll - ÃÖ¼ÒÀÇ ¿ä¼Ò¸¦ °áÁ¤ÇÏ´Â Ä÷º¼Ç
¹Ýȯ°ª:
¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¿¡ µû¸¥, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ¼ÒÀÇ ¿ä¼Ò
¿¹¿Ü:
ClassCastException - Ä÷º¼Ç¿¡ ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ñ ¿ä¼Ò (¿¹¸¦ µé¾î ij¸¯ÅÍ ¶óÀΰú Á¤¼ö)°¡ ÀÖ´Â °æ¿ì
NoSuchElementException - Ä÷º¼ÇÀÌ ºñ¾îÀÖ´Â °æ¿ì
°ü·Ã Ç׸ñ:
Comparable

min

public static <T> T min(Collection <?  extends T> coll,
                        Comparator <?  super T> comp)
ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ°¡ °¡¸®Å°´Â ¼ø¼­¿¡ µû¶ó, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ¼ÒÀÇ ¿ä¼Ò¸¦ ¸®ÅÏÇÕ´Ï´Ù. Ä÷º¼ÇÀÇ ¸ðµç ¿ä¼Ò´Â ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ ·Î ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. Áï, comp.compare(e1, e2)´Â Ä÷º¼ÇÀÇ ¿ä¼Ò°¡ e1¿Í e2ÀÎ °æ¿ì ClassCastExceptionÀ» Throw ÇØ¾ß ÇÏÁö´Â ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â Ä÷º¼Ç Àüü·Î ¹Ýº¹ 󸮸¦ ½Ç½ÃÇϹǷΠÄ÷º¼ÇÀÇ »çÀÌÁî¿¡ ºñ·ÊÇÑ ½Ã°£ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
coll - ÃÖ¼ÒÀÇ ¿ä¼Ò¸¦ °áÁ¤ÇÏ´Â Ä÷º¼Ç
comp - ÃÖ¼ÒÀÇ ¿ä¼Ò ¸®½ºÆ®°¡ °áÁ¤µÇ´Â ÄÄÆÛ·¹ÀÌÅÍ. null Ä¡´Â ¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¸¦ »ç¿ëÇÏ´Â °ÍÀ» ³ªÅ¸³½´Ù
¹Ýȯ°ª:
ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ¿¡ µû¸¥, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ¼ÒÀÇ ¿ä¼Ò
¿¹¿Ü:
ClassCastException - Ä÷º¼ÇÀ¸·Î ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ ·Î ¡¸¼­·Î ºñ±³¡¹ÇÒ ¼ö ¾ø´Â ¿ä¼Ò°¡ ÀÖ´Â °æ¿ì
NoSuchElementException - Ä÷º¼ÇÀÌ ºñ¾îÀÖ´Â °æ¿ì
°ü·Ã Ç׸ñ:
Comparable

max

public static <T extends Object  & Comparable <?  super T>> T max(Collection <?  extends T> coll)
¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¿¡ µû¶ó, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ´ëÀÇ ¿ä¼Ò¸¦ ¸®ÅÏÇÕ´Ï´Ù. Ä÷º¼ÇÀÇ ¸ðµç ¿ä¼Ò´Â Comparable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ÀÖÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. °Ô´Ù°¡ Ä÷º¼ÇÀÇ ¸ðµç ¿ä¼Ò´Â ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. Áï, e1.compareTo(e2)´Â Ä÷º¼ÇÀÇ ¿ä¼Ò°¡ e1¿Í e2ÀÎ °æ¿ì ClassCastExceptionÀ» Throw ÇØ¾ß ÇÏÁö´Â ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â Ä÷º¼Ç Àüü·Î ¹Ýº¹ 󸮸¦ ½Ç½ÃÇϹǷΠÄ÷º¼ÇÀÇ »çÀÌÁî¿¡ ºñ·ÊÇÑ ½Ã°£ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
coll - ÃÖ´ëÀÇ ¿ä¼Ò¸¦ °áÁ¤ÇÏ´Â Ä÷º¼Ç
¹Ýȯ°ª:
¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¿¡ µû¸¥, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ´ëÀÇ ¿ä¼Ò
¿¹¿Ü:
ClassCastException - Ä÷º¼Ç¿¡ ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ñ ¿ä¼Ò (¿¹¸¦ µé¾î ij¸¯ÅÍ ¶óÀΰú Á¤¼ö)°¡ ÀÖ´Â °æ¿ì
NoSuchElementException - Ä÷º¼ÇÀÌ ºñ¾îÀÖ´Â °æ¿ì
°ü·Ã Ç׸ñ:
Comparable

max

public static <T> T max(Collection <?  extends T> coll,
                        Comparator <?  super T> comp)
ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ°¡ °¡¸®Å°´Â ¼ø¼­¿¡ µû¶ó, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ´ëÀÇ ¿ä¼Ò¸¦ ¸®ÅÏÇÕ´Ï´Ù. Ä÷º¼ÇÀÇ ¸ðµç ¿ä¼Ò´Â ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ ·Î ¡¸¼­·Î ºñ±³ °¡´É¡¹ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. Áï, comp.compare(e1, e2)´Â Ä÷º¼ÇÀÇ ¿ä¼Ò°¡ e1¿Í e2ÀÎ °æ¿ì ClassCastExceptionÀ» Throw ÇØ¾ß ÇÏÁö´Â ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â Ä÷º¼Ç Àüü·Î ¹Ýº¹ 󸮸¦ ½Ç½ÃÇϹǷΠÄ÷º¼ÇÀÇ »çÀÌÁî¿¡ ºñ·ÊÇÑ ½Ã°£ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
coll - ÃÖ´ëÀÇ ¿ä¼Ò¸¦ °áÁ¤ÇÏ´Â Ä÷º¼Ç
comp - ÃÖ´ëÀÇ ¿ä¼Ò ¸®½ºÆ®¸¦ °áÁ¤ÇÏ´Â ÄÄÆÛ·¹ÀÌÅÍ. null Ä¡´Â ¿ä¼ÒÀÇ ¡¸ÀÚ¿¬ Á¤·Ä¡¹¸¦ »ç¿ëÇÏ´Â °ÍÀ» ³ªÅ¸³½´Ù
¹Ýȯ°ª:
ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ¿¡ µû¸¥, ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ÃÖ´ëÀÇ ¿ä¼Ò
¿¹¿Ü:
ClassCastException - Ä÷º¼ÇÀ¸·Î ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ ·Î ¡¸¼­·Î ºñ±³¡¹ÇÒ ¼ö ¾ø´Â ¿ä¼Ò°¡ ÀÖ´Â °æ¿ì
NoSuchElementException - Ä÷º¼ÇÀÌ ºñ¾îÀÖ´Â °æ¿ì
°ü·Ã Ç׸ñ:
Comparable

rotate

public static void rotate(List <? > list,
                          int distance)
ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ ¿ä¼Ò¸¦, ÁöÁ¤µÈ °Å¸®¿¡ ÀÇÇØ È¸ÀüÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇÑ µÚ, 0 (ÀÌ °ªÀ» Æ÷ÇÔÇÑ´Ù)À¸·ÎºÎÅÍ list.size()-1 (ÀÌ °ªÀ» Æ÷ÇÔÇÑ´Ù)±îÁöÀÇ (i ¸ðµç °ª¿¡ ´ëÇؼ­´Â À妽º i ¿ä¼Ò´Â ÀÌÀü, À妽º (i - distance) mod list.size()¿¡ ÀÖ´ø ¿ä¼Ò°¡ µË´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ¸®½ºÆ®ÀÇ »çÀÌÁî¿¡´Â ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù.

¿¹¸¦ µé¾î, list¿¡´Â [t, a, n, k, s]°¡ Æ÷ÇԵȴٰí ÇÕ´Ï´Ù. Collections.rotate(list, 1) (ȤÀº Collections.rotate(list, -4))¸¦ È£ÃâÇÑ µÚ, list¿¡´Â [s, t, a, n, k]°¡ Æ÷ÇԵ˴ϴÙ.

ÀÌ ¸Þ¼­µå¸¦ »çºê¸® Æľ÷¿¡ À¯È¿ÇÏ°Ô Àû¿ëÇØ, ³ª¸ÓÁöÀÇ ¿ä¼ÒÀÇ ¼ø¼­¸¦ º¸Á¸Çϸ鼭, ¸®½ºÆ®³»ÀÇ 1°³ ¶Ç´Â º¹¼öÀÇ ¿ä¼Ò¸¦ À̵¿ÇÒ ¼ö ÀÖ½À´Ï´Ù . ¿¹¸¦ µé¾î ´ÙÀ½ÀÇ °ü¿ë¹ýÀº À妽º j¿¡ ÀÖ´Â ¿ä¼Ò¸¦ À§Ä¡ k·Î À̵¿ÇÕ´Ï´Ù (k´Â j´Â º¸´Ù Å«Áö, µîÄ¡ÀÏ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù).


     Collections.rotate(list.subList(j, k+1), -1);
 
ÀÌ°ÍÀ» °íÁ¤Çϱâ À§Çؼ­ list¿¡ [a, b, c, d, e]°¡ Æ÷ÇÔµÇ¸é °¡Á¤ÇÕ´Ï´Ù. À妽º 1 (b)¿¡ ÀÖ´Â ¿ä¼Ò¸¦ 2°³ÀÇ À§Ä¡ÇÏ·¯ ÁøÇàÇϱâ À§Çؼ­´Â ´ÙÀ½ÀÇ È£ÃâÀ» ½ÇÇàÇÕ´Ï´Ù.

     Collections.rotate(l.subList(1, 4), -1);
 
±× °á°ú, ¸®½ºÆ®´Â [a, c, d, b, e]°¡ µË´Ï´Ù.

º¹¼öÀÇ ¿ä¼Ò¸¦ ÁøÇà½ÃÅ°±â À§Çؼ­´Â ȸÀü °Å¸®ÀÇ Àý´ëÄ¡¸¦ Áõ°¡½Ãŵ´Ï´Ù. µÚ·Î À̵¿½ÃÅ°·Á¸é, Á¤ÀÇ ½¬ÇÁÆ® À̵¿·®À» »ç¿ëÇÕ´Ï´Ù.

ÁöÁ¤µÈ °ªÀÌ ÀÛÀº ¸®½ºÆ®ÀÎÁö, RandomAccess ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ÀÖ´Â °æ¿ì, ÀÌ ±¸ÇöÀº Á¦ 1 ¿ä¼Ò¸¦ À̵¿ÇØ¾ß ÇÒ À§Ä¡·Î ±³È¯ÇÕ´Ï´Ù. ´ÙÀ½¿¡ ¿Å°Ü³õÀ» ¼ö ÀÖ¾ú´ø ¿ä¼Ò°¡ ÃÖÃÊÀÇ ¿ä¼Ò¿¡ ½º¿Ò µÉ ¶§±îÁö, ¿Å°Ü³õÀ» ¼ö ÀÖ¾ú´ø ¿ä¼Ò¸¦ À̵¿ÇØ¾ß ÇÒ À§Ä¡¿¡ ¹Ýº¹ÇØ ±³È¯ÇÕ´Ï´Ù. ÇÊ¿ä¿¡ µû¶ó¼­, ȸÀüÀÌ ¿Ï·áÇÒ ¶§±îÁö, Á¦ 2 ¿ä¼Ò ¹× ¿¬¼ÓÇÏ´Â ¿ä¼Ò¿¡ ´ëÇØ ÀÌ ÇÁ·Î¼¼½º°¡ ¹Ýº¹ÇØÁý´Ï´Ù. ÁöÁ¤µÈ ¸®½ºÆ®°¡ Å©°í, RandomAccess ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ°í ÀÖÁö ¾Ê´Â °æ¿ì, ÀÌ ±¸ÇöÀº À妽º -distance mod size 2°³ÀÇ »çºê¸®½ºÆ®ºä¿¡ ¸®½ºÆ®¸¦ ºÐÇÒÇÕ´Ï´Ù. ´ÙÀ½¿¡ reverse(List) ¸Þ¼­µå´Â °¢°¢ÀÇ »çºê¸®½ºÆ®ºä·Î ºÒ·Á°¡ ÃÖÁ¾ÀûÀ¸·Î´Â ¸®½ºÆ® Àüü·Î È£ÃâÇÕ´Ï´Ù. 2°³ÀÇ ¾Ë°í¸®ÁòÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â Jon Bentley ¡¸Programming Pearls¡¹(Addison-Wesley, 1986)ÀÇ ¼½¼Ç 2.3À» ÂüÁ¶ÇϽʽÿÀ.

ÆĶó¹ÌÅÍ:
list - ȸÀüÇÏ´Â ¸®½ºÆ®
distance - ¸®½ºÆ®¸¦ ȸÀüÇÏ´Â °Å¸®. ÀÌ °ª¿¡ Á¦¾àÀº ¾ø½À´Ï´Ù. °ªÀº 0 ¿¡¼­µµ, ºÎ¿¡¼­µµ, list.size() º¸´Ù Ä¿µµ ±¦Âú½À´Ï´Ù.
¿¹¿Ü:
UnsupportedOperationException - ÁöÁ¤µÈ ¸®½ºÆ® ¶Ç´Â ±× ¸®½ºÆ® ¹Ýº¹ÀÚ°¡ set ¸Þ¼­µå¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
µµÀÔµÈ ¹öÀü :
1.4

replaceAll

public static <T> boolean replaceAll(List <T> list,
                                     T oldVal,
                                     T newVal)
¸®½ºÆ®³»¿¡ ÃâÇöÇÏ´Â ÁöÁ¤µÈ °ªÀ» ¸ðµÎ ´Ù¸¥ °ª¿¡ ¿Å°Ü³õ½À´Ï´Ù. Áï, list ³»¿¡¼­ (oldVal==null ? e==null : oldVal.equals(e))°¡ µÇ´Â °¢ ¿ä¼Ò e¸¦ newVal¿¡ ¿Å°Ü³õ½À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ¸®½ºÆ®ÀÇ »çÀÌÁî¿¡´Â ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - ġȯÀÌ »ý±â´Â ¸®½ºÆ®
oldVal - ġȯÀüÀÇ °ª
newVal - oldVal ġȯ ÈÄÀÇ °ª
¹Ýȯ°ª:
list°¡ (oldVal==null ? e==null : oldVal.equals(e))°¡ µÇ´Â 1°³ ¶Ç´Â º¹¼öÀÇ ¿ä¼Ò e¸¦ Æ÷ÇÔÇÑ °æ¿ì´Â true
¿¹¿Ü:
UnsupportedOperationException - ÁöÁ¤µÈ ¸®½ºÆ® ¶Ç´Â ±× ¸®½ºÆ® ¹Ýº¹ÀÚ°¡ set ¸Þ¼­µå¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
µµÀÔµÈ ¹öÀü :
1.4

indexOfSubList

public static int indexOfSubList(List <? > source,
                                 List <? > target)
ÁöÁ¤µÈ ¼Ò½º ¸®½ºÆ®³»¿¡¼­ ÁöÁ¤µÈ Ÿ°Ù ¸®½ºÆ®°¡ ÃÖÃÊ·Î ÃâÇöÇÑ À§Ä¡ÀÇ °³½Ã À§Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÃâÇöÀÌ ¾ø´Â °æ¿ì´Â -1À» ¸®ÅÏÇÕ´Ï´Ù. Áï, source.subList(i, i+target.size()). equals(target)°¡ µÇ´Â ÃÖ¼ÒÀÇ À妽ºÄ¡ i¸¦ µ¹·ÁÁÖ°í, ÀÌ·¯ÇÑ À妽º°ªÀÌ ¾ø´Â °æ¿ì´Â -1À» µ¹·ÁÁÖ´Â (target.size() > source.size()ÀÎ °æ¿ì´Â -1À» µ¹·ÁÁØ´Ù).

ÀÌ ±¸ÇöÀº ¼Ò½º ¸®½ºÆ®¸¦ ½ºÄ³´× ÇÏ´Â ¡¸°­ÇàÀΡ¹±â¼úÀ» »ç¿ëÇØ, ¼Ò½º ¸®½ºÆ®ÀÇ ¿©·¯ºÐÄ¡·Î Ÿ°Ù°ú ÀÏÄ¡ÇÒ±î Â÷·Ê·Î °Ë»öÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
source - ÃÖÃÊ·Î ÃâÇöÇÏ´Â target¸¦ °Ë»öÇÏ´Â ¸®½ºÆ®
target - source subList ·Î¼­ °Ë»öÇÏ´Â ¸®½ºÆ®
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼Ò½º ¸®½ºÆ®³»¿¡¼­ ÃÖÃÊ·Î ÃâÇöÇÑ ÁöÁ¤ Ÿ°Ù ¸®½ºÆ®ÀÇ °³½Ã À§Ä¡. ÀÌ·¯ÇÑ ÃâÇöÀÌ ¾ø´Â °æ¿ì´Â -1
µµÀÔµÈ ¹öÀü :
1.4

lastIndexOfSubList

public static int lastIndexOfSubList(List <? > source,
                                     List <? > target)
ÁöÁ¤µÈ ¼Ò½º ¸®½ºÆ®³»¿¡¼­ ¸¶Áö¸·¿¡ ÃâÇöÇÑ ÁöÁ¤ Ÿ°Ù ¸®½ºÆ®ÀÇ °³½Ã À§Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÃâÇöÀÌ ¾ø´Â °æ¿ì´Â -1À» ¸®ÅÏÇÕ´Ï´Ù. Áï, source.subList(i, i+target.size()). equals(target)°¡ µÇ´Â ÃÖ´ëÀÇ À妽ºÄ¡ i¸¦ µ¹·ÁÁÖ°í, ÀÌ·¯ÇÑ À妽º°ªÀÌ ¾ø´Â °æ¿ì´Â -1À» µ¹·ÁÁÖ´Â (target.size() > source.size()ÀÎ °æ¿ì´Â -1À» µ¹·ÁÁØ´Ù).

ÀÌ ±¸Çö¿¡¼­´Â ¼Ò½º ¸®½ºÆ®ÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇÏ´Â ¡¸°­ÇàÀΡ¹±â¼úÀ» »ç¿ëÇØ, ¿©·¯ºÐÄ¡·Î Ÿ°Ù°ú ÀÏÄ¡ÇÒ±î Â÷·Ê·Î °Ë»öÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
source - ¸¶Áö¸·¿¡ ÃâÇöÇÏ´Â target¸¦ °Ë»öÇÏ´Â ¸®½ºÆ®
target - source subList ·Î¼­ °Ë»öÇÏ´Â ¸®½ºÆ®
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼Ò½º ¸®½ºÆ®³»¿¡¼­ ¸¶Áö¸·¿¡ ÃâÇöÇÑ ÁöÁ¤ Ÿ°Ù ¸®½ºÆ®ÀÇ °³½Ã À§Ä¡. ÀÌ·¯ÇÑ ÃâÇöÀÌ ¾ø´Â °æ¿ì´Â -1
µµÀÔµÈ ¹öÀü :
1.4

unmodifiableCollection

public static <T> Collection <T> unmodifiableCollection(Collection <?  extends T> c)
ÁöÁ¤µÈ Ä÷º¼ÇÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇϸé, ¸ðµâÀº »ç¿ëÀÚ¿¡ °Ô ³»ºÎ Ä÷º¼Ç¿¡ÀÇ ¡¸Àбâ Àü¿ë ¡¹Á¢±Ù ±ÇÇÑÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®ÅÏµÈ Ä÷º¼Ç¿¡¼­ÀÇ Äõ¸®¿ÀÆÛ·¹À̼ÇÀº ÁöÁ¤µÈ Ä÷º¼ÇÀ» Á÷Á¢ ÀоîµéÀÔ´Ï´Ù. Á÷Á¢Àΰ¡ ±× ¹Ýº¹ÀÚ¸¦ »ç¿ëÇұ °ü°è¾øÀÌ, ¸®ÅÏµÈ Ä÷º¼ÇÀ» º¯°æÇÏ·Á°í Çϸé UnsupportedOperationExceptionÀÌ ¹ß»ý µË´Ï´Ù.

¸®ÅÏµÈ Ä÷º¼ÇÀº hashCode ¿ÀÆÛ·¹ÀÌ¼Ç ¹× equals ¿ÀÆÛ·¹À̼ÇÀ» ±â°¡ µÇ´Â Ä÷º¼Ç¿¡ °Ç³×ÁÙ °ÍÀº ¾ø°í, Object equals ¸Þ¼­µå ¹× hashCode ¸Þ¼­µå¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. ÀÌ°ÍÀº ±â°¡ µÇ´Â Ä÷º¼ÇÀÌ ¼¼Æ® ¶Ç´Â ¸®½ºÆ®ÀÇ °æ¿ì¿¡ ±×·¯ÇÑ ¿ÀÆÛ·¹À̼ÇÀÇ ±Ô¾àÀ» ÁöÅ°±â À§Çؼ­ ÇÊ¿äÇÕ´Ï´Ù.

¸®ÅÏµÈ Ä÷º¼ÇÀº ÁöÁ¤µÈ Ä÷º¼ÇÀÌ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
c - º¯°æ ºÒ°¡´ÉÇÑ ºä°¡ ¸®ÅÏµÈ Ä÷º¼Ç
¹Ýȯ°ª:
ÁöÁ¤µÈ Ä÷º¼ÇÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä

unmodifiableSet

public static <T> Set <T> unmodifiableSet(Set <?  extends T> s)
ÁöÁ¤µÈ ¼¼Æ®ÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇϸé, ¸ðµâÀº »ç¿ëÀÚ¿¡ °Ô ³»ºÎ ¼¼Æ®¿¡ÀÇ ¡¸Àбâ Àü¿ë ¡¹Á¢±Ù ±ÇÇÑÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®ÅÏµÈ ¼¼Æ®¿¡¼­ÀÇ Äõ¸®¿ÀÆÛ·¹À̼ÇÀº ÁöÁ¤µÈ ¼¼Æ®¸¦ Á÷Á¢ Àбâ, Á÷Á¢Àΰ¡ ±× ¹Ýº¹ÀÚ¸¦ »ç¿ëÇұ °ü°è¾øÀÌ, ¸®ÅÏµÈ ¼¼Æ®¸¦ º¯°æÇÏ·Á°í Çϸé UnsupportedOperationExceptionÀÌ ¹ß»ý µË´Ï´Ù.

¸®ÅÏµÈ ¼¼Æ®´Â ÁöÁ¤µÈ ¼¼Æ®°¡ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì¿¡ Á÷·ÄÈ­ °¡´ÉÇÏ°Ô µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
s - º¯°æ ºÒ°¡´ÉÇÑ ºä°¡ ¸®ÅÏµÈ ¼¼Æ®
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼¼Æ®ÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä

unmodifiableSortedSet

public static <T> SortedSet <T> unmodifiableSortedSet(SortedSet <T> s)
ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®ÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇϸé, ¸ðµâÀº »ç¿ëÀÚ¿¡ °Ô ³»ºÎ ¼ÒÆ® ¼¼Æ®¿¡ÀÇ ¡¸Àбâ Àü¿ë ¡¹Á¢±Ù ±ÇÇÑÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®ÅÏµÈ ¼ÒÆ® ¼¼Æ®¿¡¼­ÀÇ Äõ¸®¿ÀÆÛ·¹À̼ÇÀº ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®¸¦ Á÷Á¢ ÀоîµéÀÔ´Ï´Ù. Á÷Á¢Àΰ¡ ±× ¹Ýº¹ÀÚ¸¦ »ç¿ëÇϵ簡 ȤÀº ºäÀÇ subSet, headSet, tailSet¸¦ »ç¿ëÇұ °ü°è¾øÀÌ, ¼ÒÆ® ¼¼Æ®¸¦ º¯°æÇÏ·Á°í Çϸé UnsupportedOperationExceptionÀÌ ¹ß»ý µË´Ï´Ù.

¸®ÅÏµÈ ¼ÒÆ® ¼¼Æ®´Â ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®°¡ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
s - º¯°æ ºÒ°¡´ÉÇÑ ºä°¡ ¸®ÅÏµÈ ¼ÒÆ® ¼¼Æ®
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®ÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä

unmodifiableList

public static <T> List <T> unmodifiableList(List <?  extends T> list)
ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇϸé, ¸ðµâÀº »ç¿ëÀÚ¿¡ °Ô ³»ºÎ ¸®½ºÆ®¿¡ÀÇ ¡¸Àбâ Àü¿ë ¡¹Á¢±Ù ±ÇÇÑÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®ÅÏµÈ ¸®½ºÆ®¿¡¼­ÀÇ Äõ¸®¿ÀÆÛ·¹À̼ÇÀº ÁöÁ¤µÈ ¸®½ºÆ®¸¦ Á÷Á¢ ÀоîµéÀÔ´Ï´Ù. Á÷Á¢Àΰ¡ ±× ¹Ýº¹ÀÚ¸¦ »ç¿ëÇұ °ü°è¾øÀÌ, ¸®ÅÏµÈ ¸®½ºÆ®¸¦ º¯°æÇÏ·Á°í Çϸé UnsupportedOperationExceptionÀÌ ¹ß»ý µË´Ï´Ù.

¸®ÅÏµÈ ¸®½ºÆ®´Â ÁöÁ¤µÈ ¸®½ºÆ®°¡ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì¿¡¸¸ Á÷·ÄÈ­ °¡´ÉÇÏ°Ô µË´Ï´Ù. ¶Ç, ÁöÁ¤µÈ ¸®½ºÆ®°¡ RandomAccess¸¦ ±¸ÇöÇÏ´Â °æ¿ì¿¡¸¸, ¸®ÅÏµÈ ¸®½ºÆ®´Â RandomAccess¸¦ ±¸ÇöÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - º¯°æ ºÒ°¡´ÉÇÑ ºä°¡ ¸®ÅÏµÈ ¸®½ºÆ®
¹Ýȯ°ª:
ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä

unmodifiableMap

public static <K, V> Map <K, V> unmodifiableMap(Map <?  extends K,?  extends V> m)
ÁöÁ¤µÈ ¸ÊÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇϸé, ¸ðµâÀº »ç¿ëÀÚ¿¡ °Ô ³»ºÎ ¸Ê¿¡ÀÇ ¡¸Àбâ Àü¿ë ¡¹Á¢±Ù ±ÇÇÑÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®ÅÏµÈ ¸Ê¿¡¼­ÀÇ Äõ¸®¿ÀÆÛ·¹À̼ÇÀº ÁöÁ¤µÈ ¸ÊÀ» Á÷Á¢ ÀоîµéÀÔ´Ï´Ù. Á÷Á¢Àΰ¡ ±× ÄÚ·¹Å©¼Çºä¸¦ »ç¿ëÇұ °ü°è¾øÀÌ, ¸®ÅÏµÈ ¸ÊÀ» º¯°æÇÏ·Á°í Çϸé UnsupportedOperationExceptionÀÌ ¹ß»ý µË´Ï´Ù.

¸®ÅÏµÈ ¸ÊÀº ÁöÁ¤µÈ ¸ÊÀÌ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
m - º¯°æ ºÒ°¡´ÉÇÑ ºä°¡ ¸®ÅÏµÈ ¸Ê
¹Ýȯ°ª:
ÁöÁ¤µÈ ¸ÊÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä

unmodifiableSortedMap

public static <K, V> SortedMap <K, V> unmodifiableSortedMap(SortedMap <K,?  extends V> m)
ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇϸé, ¸ðµâÀº »ç¿ëÀÚ¿¡ °Ô ³»ºÎ ¼ÒÆ® ¸Ê¿¡ÀÇ ¡¸Àбâ Àü¿ë ¡¹Á¢±Ù ±ÇÇÑÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®ÅÏµÈ ¼ÒÆ® ¸Ê¿¡¼­ÀÇ Äõ¸®¿ÀÆÛ·¹À̼ÇÀº ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀ» Á÷Á¢ ÀоîµéÀÔ´Ï´Ù. Á÷Á¢Àΰ¡ ±× ÄÚ·¹Å©¼Çºä¸¦ »ç¿ëÇÏ´ÂÁö, ¶Ç´Â ºä subMap, headMap, tailMap¸¦ »ç¿ëÇұ °ü°è¾øÀÌ, ¸®ÅÏµÈ ¼ÒÆ® ¸ÊÀ» º¯°æÇÏ·Á°í Çϸé UnsupportedOperationExceptionÀÌ ¹ß»ý µË´Ï´Ù.

¸®ÅÏµÈ ¼ÒÆ® ¸ÊÀº ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀÌ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
m - º¯°æ ºÒ°¡´ÉÇÑ ºä°¡ ¸®ÅÏµÈ ¼ÒÆ® ¸Ê
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀÇ º¯°æ ºÒ°¡´ÉÇÑ ºä

synchronizedCollection

public static <T> Collection <T> synchronizedCollection(Collection <T> c)
ÁöÁ¤µÈ Ä÷º¼ÇÀ» ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) Ä÷º¼ÇÀ» ¸®ÅÏÇÕ´Ï´Ù. È®½ÇÈ÷ Á÷·Ä ¾×¼¼½º¸¦ ½ÇÇöÇÏ·Á¸é, ±â°¡ µÇ´Â Ä÷º¼Ç¿¡ÀÇ ¾×¼¼½º´Â ¸ðµÎ ¸®ÅÏµÈ Ä÷º¼ÇÀ» °³ÀÔ½ÃÄÑ ½Ç½ÃÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

¸®ÅÏµÈ Ä÷º¼ÇÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇÏ´Â °æ¿ì, »ç¿ëÀÚ´Â ´ÙÀ½¿¡ ³ªÅ¸³»µµ·Ï ¼öµ¿À¸·Î µ¿±â¸¦ ÀâÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


  Collection c = Collections.synchronizedCollection(myCollection);
     ...
  synchronized(c) {
      Iterator i = c.iterator(); // Must be in the synchronized block
      while (i.hasNext())
         foo(i.next());
  }
 
ÀÌ°ÍÀ» ½Ç½ÃÇÏÁö ¾Ê´Â °æ¿ì, µ¿ÀÛÀº º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.

¸®ÅÏµÈ Ä÷º¼ÇÀº, hashCode ¿ÀÆÛ·¹ÀÌ¼Ç ¹× equals ¿ÀÆÛ·¹À̼ÇÀ» ±â°¡ µÇ´Â Ä÷º¼Ç¿¡ °Ç³×ÁÙ °ÍÀº ¾ø°í, Object equals ¹× hashCode ¸Þ¼­µå¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. ÀÌ°ÍÀº ±â°¡ µÇ´Â Ä÷º¼ÇÀÌ ¼¼Æ® ¶Ç´Â ¸®½ºÆ®ÀÇ °æ¿ì¿¡ ±×·¯ÇÑ ¿ÀÆÛ·¹À̼ÇÀÇ ±Ô¾àÀ» ÁöÅ°±â À§Çؼ­ ÇÊ¿äÇÕ´Ï´Ù.

¸®ÅÏµÈ Ä÷º¼ÇÀº ÁöÁ¤µÈ Ä÷º¼ÇÀÌ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
c - µ¿±â Ä÷º¼Ç¿¡ ¡¸·¦¡¹µÇ´Â Ä÷º¼Ç
¹Ýȯ°ª:
ÁöÁ¤µÈ Ä÷º¼ÇÀÇ µ¿±â ºä

synchronizedSet

public static <T> Set <T> synchronizedSet(Set <T> s)
ÁöÁ¤µÈ ¼¼Æ®¸¦ ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. È®½ÇÈ÷ Á÷·Ä ¾×¼¼½º¸¦ ½ÇÇöÇÏ·Á¸é, ±â°¡ µÇ´Â ¼¼Æ®¿¡ÀÇ ¾×¼¼½º´Â ¸ðµÎ ¸®ÅÏµÈ ¼¼Æ®¸¦ °³ÀÔ½ÃÄÑ ½Ç½ÃÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

¸®ÅÏµÈ ¼¼Æ®ÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇÏ´Â °æ¿ì, »ç¿ëÀÚ´Â ´ÙÀ½¿¡ ³ªÅ¸³»µµ·Ï ¼öµ¿À¸·Î µ¿±â¸¦ ÀâÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


  Set s = Collections.synchronizedSet(new HashSet());
      ...
  synchronized(s) {
      Iterator i = s.iterator(); // Must be in the synchronized block
      while (i.hasNext())
          foo(i.next());
  }
 
ÀÌ°ÍÀ» ½Ç½ÃÇÏÁö ¾Ê´Â °æ¿ì, µ¿ÀÛÀº º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.

¸®ÅÏµÈ ¼¼Æ®´Â ÁöÁ¤µÈ ¼¼Æ®°¡ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì¿¡ Á÷·ÄÈ­ °¡´ÉÇÏ°Ô µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
s - µ¿±â ¼¼Æ®¿¡ ¡¸·¦¡¹µÇ´Â ¼¼Æ®
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼¼Æ®ÀÇ µ¿±â ºä

synchronizedSortedSet

public static <T> SortedSet <T> synchronizedSortedSet(SortedSet <T> s)
ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®¸¦ ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¼ÒÆ® ¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. È®½ÇÈ÷ Á÷·Ä ¾×¼¼½º¸¦ ½ÇÇöÇÏ·Á¸é, ±â°¡ µÇ´Â ¼ÒÆ® ¼¼Æ®¿¡ÀÇ ¾×¼¼½º´Â ¸ðµÎ, ¸®ÅÏµÈ ¼ÒÆ® ¼¼Æ® (¶Ç´Â ±× ºä)¸¦ °³ÀÔ½ÃÄÑ ½Ç½ÃÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

¸®ÅÏµÈ ¼ÒÆ® ¼¼Æ®, ¶Ç´Â ±× subSet, headSet, ȤÀº tailSet ºäÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇÏ´Â °æ¿ì, »ç¿ëÀÚ´Â ´ÙÀ½¿¡ ³ªÅ¸³»µµ·Ï ¼öµ¿À¸·Î µ¿±â¸¦ ÀâÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


  SortedSet s = Collections.synchronizedSortedSet(new HashSortedSet());
      ...
  synchronized(s) {
      Iterator i = s.iterator(); // Must be in the synchronized block
      while (i.hasNext())
          foo(i.next());
  }
 
¶Ç´Â

  SortedSet s = Collections.synchronizedSortedSet(new HashSortedSet());
  SortedSet s2 = s.headSet(foo);
      ...
  synchronized(s) {  // Note: s, not s2!!!
      Iterator i = s2.iterator(); // Must be in the synchronized block
      while (i.hasNext())
          foo(i.next());
  }
 
ÀÌ°ÍÀ» ½Ç½ÃÇÏÁö ¾Ê´Â °æ¿ì, µ¿ÀÛÀº º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.

¸®ÅÏµÈ ¼ÒÆ® ¼¼Æ®´Â ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®°¡ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
s - µ¿±â ¼ÒÆ® ¼¼Æ®¿¡ ¡¸·¦¡¹µÇ´Â ¼ÒÆ® ¼¼Æ®
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®ÀÇ µ¿±â ºä

synchronizedList

public static <T> List <T> synchronizedList(List <T> list)
ÁöÁ¤µÈ ¸®½ºÆ®¸¦ ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. È®½ÇÈ÷ Á÷·Ä ¾×¼¼½º¸¦ ½ÇÇöÇÏ·Á¸é, ±âº»À¸·Î µÇ´Â ¸®½ºÆ®¿¡ÀÇ ¾×¼¼½º´Â ¸ðµÎ, ¸®ÅÏµÈ ¸®½ºÆ®¸¦ °³ÀÔ½ÃÄÑ ½Ç½ÃÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

¸®ÅÏµÈ ¸®½ºÆ®ÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇÏ´Â °æ¿ì, »ç¿ëÀÚ´Â ´ÙÀ½¿¡ ³ªÅ¸³»µµ·Ï ¼öµ¿À¸·Î µ¿±â¸¦ ÀâÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


  List list = Collections.synchronizedList(new ArrayList());
      ...
  synchronized(list) {
      Iterator i = list.iterator(); // Must be in synchronized block
      while (i.hasNext())
          foo(i.next());
  }
 
ÀÌ°ÍÀ» ½Ç½ÃÇÏÁö ¾Ê´Â °æ¿ì, µ¿ÀÛÀº º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.

¸®ÅÏµÈ ¸®½ºÆ®´Â ÁöÁ¤µÈ ¸®½ºÆ®°¡ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì¿¡¸¸ Á÷·ÄÈ­ °¡´ÉÇÏ°Ô µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - µ¿±â ¸®½ºÆ®¿¡ ¡¸·¦¡¹µÇ´Â ¸®½ºÆ®
¹Ýȯ°ª:
ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ µ¿±â ºä

synchronizedMap

public static <K, V> Map <K, V> synchronizedMap(Map <K, V> m)
ÁöÁ¤µÈ ¸ÊÀ» ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¸ÊÀ» ¸®ÅÏÇÕ´Ï´Ù. È®½ÇÈ÷ Á÷·Ä ¾×¼¼½º¸¦ ½ÇÇöÇÏ·Á¸é, ±âº»À¸·Î µÇ´Â ¸Ê¿¡ÀÇ ¾×¼¼½º´Â ¸ðµÎ, ¸®ÅÏµÈ ¸ÊÀ» °³ÀÔ½ÃÄÑ ½Ç½ÃÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

¸®ÅÏµÈ ¸ÊÀÇ ÄÚ·¹Å©¼Çºä¿¡¼­ÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇÏ´Â °æ¿ì, »ç¿ëÀÚ´Â ´ÙÀ½¿¡ ³ªÅ¸³»µµ·Ï ¼öµ¿À¸·Î µ¿±â¸¦ ÀâÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


  Map m = Collections.synchronizedMap(new HashMap());
      ...
  Set s = m.keySet();  // Needn't be in synchronized block
      ...
  synchronized(m) {  // Synchronizing on m, not s!
      Iterator i = s.iterator(); // Must be in synchronized block
      while (i.hasNext())
          foo(i.next());
  }
 
ÀÌ°ÍÀ» ½Ç½ÃÇÏÁö ¾Ê´Â °æ¿ì, µ¿ÀÛÀº º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.

¸®ÅÏµÈ ¸ÊÀº ÁöÁ¤µÈ ¸ÊÀÌ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
m - µ¿±â ¸Ê¿¡ ¡¸·¦¡¹µÇ´Â ¸Ê
¹Ýȯ°ª:
ÁöÁ¤µÈ ¸ÊÀÇ µ¿±â ºä

synchronizedSortedMap

public static <K, V> SortedMap <K, V> synchronizedSortedMap(SortedMap <K, V> m)
ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀ» ±âº»À¸·Î ÇÏ´Â µ¿±â (thread ¼¼ÀÌÇÁÀÎ) ¼ÒÆ® ¸ÊÀ» ¸®ÅÏÇÕ´Ï´Ù. È®½ÇÈ÷ Á÷·Ä ¾×¼¼½º¸¦ ½ÇÇöÇÏ·Á¸é, ±âº»À¸·Î µÇ´Â ¼ÒÆ® ¸Ê¿¡ÀÇ ¾×¼¼½º´Â ¸ðµÎ, ¸®ÅÏµÈ ¼ÒÆ® ¸Ê (¶Ç´Â ±× ºä)À» °³ÀÔ½ÃÄÑ ½Ç½ÃÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

¸®ÅÏµÈ ¼ÒÆ® ¸ÊÀÇ ÄÚ·¹Å©¼Çºä, ¶Ç´Â subMap, headMap, tailMap ºäÀÇ ÄÚ·¹Å©¼Çºä¿¡¼­ÀÇ ¹Ýº¹ 󸮸¦ ½Ç½ÃÇÏ´Â °æ¿ì, »ç¿ëÀÚ´Â ´ÙÀ½¿¡ ³ªÅ¸³»µµ·Ï ¼öµ¿À¸·Î µ¿±â¸¦ ÀâÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.


  SortedMap m = Collections.synchronizedSortedMap(new HashSortedMap());
      ...
  Set s = m.keySet();  // Needn't be in synchronized block
      ...
  synchronized(m) {  // Synchronizing on m, not s!
      Iterator i = s.iterator(); // Must be in synchronized block
      while (i.hasNext())
          foo(i.next());
  }
 
¶Ç´Â

  SortedMap m = Collections.synchronizedSortedMap(new HashSortedMap());
  SortedMap m2 = m.subMap(foo, bar);
      ...
  Set s2 = m2.keySet();  // Needn't be in synchronized block
      ...
  synchronized(m) {  // Synchronizing on m, not m2 or s2!
      Iterator i = s.iterator(); // Must be in synchronized block
      while (i.hasNext())
          foo(i.next());
  }
 
ÀÌ°ÍÀ» ½Ç½ÃÇÏÁö ¾Ê´Â °æ¿ì, µ¿ÀÛÀº º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.

¸®ÅÏµÈ ¼ÒÆ® ¸ÊÀº ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀÌ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
m - µ¿±â ¼ÒÆ® ¸Ê¿¡ ¡¸·¦¡¹µÇ´Â ¼ÒÆ® ¸Ê
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀÇ µ¿±â ºä

checkedCollection

public static <E> Collection <E> checkedCollection(Collection <E> c,
                                                  Class <E> type)
ÁöÁ¤µÈ Ä÷º¼ÇÀÇ, µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò¸¦ »ðÀÔÇÏ·Á°í ÇÏÀÚ, °ð¹Ù·Î ClassCastExceptionÀÌ ¹ß»ý µË´Ï´Ù. µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ »ý¼ºµÇ±â ÀüÀº Ä÷º¼Ç¿¡ ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ Æ÷ÇÔµÇÁö ¾Ê°í, ÈļÓÀÇ Ä÷º¼Ç¿¡ÀÇ ¾×¼¼½º°¡ ¸ðµÎ ÀÌ ºä¸¦ °³ÀÔ½ÃÄÑ ÇàÇØÁö´Â °æ¿ì, Ä÷º¼Ç¿¡´Â ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ Æ÷ÇÔµÇÁö ¾Ê´Â °ÍÀÌ º¸ÁõµË´Ï´Ù.

¾ð¾î³»ÀÇ ¹ü¿ë ¸ÞÄ«´ÏÁò¿¡ ÀÇÇØ ÄÄÆÄÀϽà (Á¤Àû)ÀÇ ÇüÅ üũ°¡ Á¦°øµË´Ï´Ù¸¸, üũµÇÁö ¾Ê´Â ij½ºÆ®¸¦ »ç¿ëÇØ ÀÌ ¸ÞÄ«´ÏÁòÀ» ¹«È¿·Î ÇÒ ¼ö ¾ø½À´Ï´Ù. º¸Åë, ÀÌ·± Á¾·ùÀÇ Ã¼Å©µÇÁö ¾Ê´Â Á¶ÀÛ ¸ðµÎ·Î ÄÄÆÄÀÏ·¯°¡ °æ°í¸¦ ¹ßÇàÇϱâ À§ÇØ, ÀÌ°ÍÀº ¹®Á¦·Î´Â µÇÁö ¾Ê½À´Ï´Ù. ´Ù¸¸, ¶§·Î´Â Á¤ÀûÀÎ ÇüÅ üũ¸¸À¸·Î´Â ºÒÃæºÐÇÑ °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î Ä÷º¼ÇÀÌ ½áµåÆÄƼÀÇ ¶óÀ̺귯¸®¿¡°Ô °Ç³×ÁöÁö¸¸, ¶óÀ̺귯¸® Äڵ尡 ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò¸¦ »ðÀÔÇØ Ä÷º¼ÇÀ» Æı«ÇØ ¹ö¸®´Â °ÍÀÌ À־´Â ¾ÈµÇ´Â °æ¿ì µîÀÔ´Ï´Ù.

µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºäÀÇ ´Ù¸¥ ¿ëµµ´Â µð¹ö±×ÀÔ´Ï´Ù. ÇÁ·Î±×·¥ÀÌ ClassCastException·Î ½ÇÆÐÇØ, ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ ÆĶó¹ÌÅÍÈ­ µÈ Ä÷º¼Ç¿¡ ³Ö¾îÁø °ÍÀ» ³ªÅ¸³»´Â °æ¿ì¸¦ »ý°¢ÇսôÙ. À¯°¨½º·´°Ô, ºÎÁ¤ÇÑ ¿ä¼Ò°¡ »ðÀԵǴ °÷ÀÇ ¿¹¿Ü°¡ Ç×»ó ¹ß»ýÇÒ °¡´É¼ºÀÌ Àֱ⠶§¹®¿¡ ÀÌ ¿¹¿Ü·ÎºÎÅÍ ¹®Á¦ÀÇ ¼Ò½º¿¡ °üÇÑ Á¤º¸¸¦ °ÅÀÇ ¶Ç´Â ÀüÇô ¾òÀ» ¼ö ÀÖÁö ¾Ê½À´Ï´Ù. ¹®Á¦°¡ ÀçÇö °¡´ÉÇÑ °æ¿ì´Â ÇÁ·Î±×·¥À» º¯°æÇØ µ¿ÀûÀÎ ÇüÅ º¸ÁõµÈ ºä·Î Ä÷º¼ÇÀ» ÀϽÃÀûÀ¸·Î°¨½Î´Â °ÍÀ¸·Î ¼Ò½º¸¦ Àçºü¸£°Ô ÆÇÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¼±¾ð


     Collection<String> c = new HashSet<String>();
 
´Â ´ÙÀ½ÀÇ ¼±¾ðÀ¸·Î ÀϽÃÀûÀ¸·Î ¿Å°Ü³õÀ» ¼ö°¡ ÀÖ½À´Ï´Ù.

     Collection<String> c = Collections.checkedCollection(         new HashSet<String>(), String.class);
 
ÇÁ·Î±×·¥À» ÀçÂ÷ ½ÇÇàÇϸé, ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ Ä÷º¼Ç¿¡ »ðÀÔµÈ À§Ä¡¿¡¼­ ÇÁ·Î±×·¥ÀÌ ½ÇÆÐÇϱâ À§ÇØ, ¹®Á¦ÀÇ ¿øÀÎÀ» ºÐ¸íÈ÷ ½Äº°ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹®Á¦¸¦ ¼öÁ¤Çϸé, º¯°æÇÑ ¼±¾ðÀ» ¹ÙÅÁÀ¸·Î µÇµ¹¸³´Ï´Ù.

¸®ÅÏµÈ Ä÷º¼ÇÀº hashCode ¿ÀÆÛ·¹ÀÌ¼Ç ¹× equals ¿ÀÆÛ·¹À̼ÇÀ» ±â°¡ µÇ´Â Ä÷º¼Ç¿¡ °Ç³×ÁÙ °ÍÀº ¾ø°í, Object equals ¸Þ¼­µå ¹× hashCode ¸Þ¼­µå¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. ÀÌ°ÍÀº ±â°¡ µÇ´Â Ä÷º¼ÇÀÌ ¼¼Æ® ¶Ç´Â ¸®½ºÆ®ÀÇ °æ¿ì¿¡ ±×·¯ÇÑ ¿ÀÆÛ·¹À̼ÇÀÇ ±Ô¾àÀ» ÁöÅ°±â À§Çؼ­ ÇÊ¿äÇÕ´Ï´Ù.

¸®ÅÏµÈ Ä÷º¼ÇÀº ÁöÁ¤µÈ Ä÷º¼ÇÀÌ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
c - µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ ¸®ÅÏµÈ Ä÷º¼Ç
type - c°¡ º¸°ü À¯ÁöÇÏ´Â °ÍÀÌ ¿ë¼­µÈ ¿ä¼ÒÀÇ ÇüÅÂ
¹Ýȯ°ª:
ÁöÁ¤µÈ Ä÷º¼ÇÀÇ, µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä
µµÀÔµÈ ¹öÀü :
1.5

checkedSet

public static <E> Set <E> checkedSet(Set <E> s,
                                    Class <E> type)
ÁöÁ¤µÈ ¼¼Æ®ÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò¸¦ »ðÀÔÇÏ·Á°í ÇÏÀÚ, °ð¹Ù·Î ClassCastExceptionÀÌ ¹ß»ý µË´Ï´Ù. µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ »ý¼ºµÇ±â ÀüÀº ¼¼Æ®¿¡ ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ Æ÷ÇÔµÇÁö ¾Ê°í, ¼¼Æ®¿¡ÀÇ ÈļÓÀÇ ¾×¼¼½º°¡ ¸ðµÎ ÀÌ ºä¸¦ °³ÀÔ½ÃÄÑ ÇàÇØÁö´Â °æ¿ì, ¼¼Æ®¿¡´Â ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ Æ÷ÇÔµÇÁö ¾Ê´Â °ÍÀÌ º¸ÁõµË´Ï´Ù.

µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºäÀÇ »ç¿ë¿¡ ´ëÇؼ­´Â checkedCollection ¸Þ¼­µåÀÇ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

¸®ÅÏµÈ ¼¼Æ®´Â ÁöÁ¤µÈ ¼¼Æ®°¡ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì¿¡ Á÷·ÄÈ­ °¡´ÉÇÏ°Ô µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
s - µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ ¸®ÅÏµÈ ¼¼Æ®
type - s°¡ º¸°ü À¯ÁöÇÏ´Â °ÍÀÌ ¿ë¼­µÈ ¿ä¼ÒÀÇ ÇüÅÂ
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼¼Æ®ÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä
µµÀÔµÈ ¹öÀü :
1.5

checkedSortedSet

public static <E> SortedSet <E> checkedSortedSet(SortedSet <E> s,
                                                Class <E> type)
ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®ÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò¸¦ »ðÀÔÇÏ·Á°í ÇÏÀÚ, °ð¹Ù·Î ClassCastExceptionÀÌ ¹ß»ý µË´Ï´Ù. µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ »ý¼ºµÇ±â ÀüÀº ¼ÒÆ® ¼¼Æ®¿¡ ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ Æ÷ÇÔµÇÁö ¾Ê°í, ¼ÒÆ® ¼¼Æ®¿¡ÀÇ ÈļÓÀÇ ¾×¼¼½º°¡ ¸ðµÎ ÀÌ ºä¸¦ °³ÀÔ½ÃÄÑ ÇàÇØÁö´Â °æ¿ì, ¼ÒÆ® ¼¼Æ®¿¡´Â ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ Æ÷ÇÔµÇÁö ¾Ê´Â °ÍÀÌ º¸ÁõµË´Ï´Ù.

µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºäÀÇ »ç¿ë¿¡ ´ëÇؼ­´Â checkedCollection ¸Þ¼­µåÀÇ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

¸®ÅÏµÈ ¼ÒÆ® ¼¼Æ®´Â ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®°¡ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
s - µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ ¸®ÅÏµÈ ¼ÒÆ® ¼¼Æ®
type - s°¡ º¸°ü À¯ÁöÇÏ´Â °ÍÀÌ ¿ë¼­µÈ ¿ä¼ÒÀÇ ÇüÅÂ
¹Ýȯ°ª:
ÁöÁ¤µÈ ¼ÒÆ® ¼¼Æ®ÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä
µµÀÔµÈ ¹öÀü :
1.5

checkedList

public static <E> List <E> checkedList(List <E> list,
                                      Class <E> type)
ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò¸¦ »ðÀÔÇÏ·Á°í ÇÏÀÚ, °ð¹Ù·Î ClassCastExceptionÀÌ ¹ß»ý µË´Ï´Ù. µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ »ý¼ºµÇ±â ÀüÀº ¸®½ºÆ®¿¡ ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ Æ÷ÇÔµÇÁö ¾Ê°í, ÈļÓÀÇ ¸®½ºÆ®¿¡ÀÇ ¾×¼¼½º°¡ ¸ðµÎ ÀÌ ºä¸¦ °³ÀÔ½ÃÄÑ ÇàÇØÁö´Â °æ¿ì, ¸®½ºÆ®¿¡´Â ºÎÁ¤ÇÑ ÇüÅÂÀÇ ¿ä¼Ò°¡ Æ÷ÇÔµÇÁö ¾Ê´Â °ÍÀÌ º¸ÁõµË´Ï´Ù.

µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºäÀÇ »ç¿ë¿¡ ´ëÇؼ­´Â checkedCollection ¸Þ¼­µåÀÇ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

¸®ÅÏµÈ ¸®½ºÆ®´Â ÁöÁ¤µÈ ¸®½ºÆ®°¡ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì¿¡¸¸ Á÷·ÄÈ­ °¡´ÉÇÏ°Ô µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
list - µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ ¸®ÅÏµÈ ¸®½ºÆ®
type - list°¡ º¸°ü À¯ÁöÇÏ´Â °ÍÀÌ ¿ë¼­µÈ ¿ä¼ÒÀÇ ÇüÅÂ
¹Ýȯ°ª:
ÁöÁ¤µÈ ¸®½ºÆ®ÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä
µµÀÔµÈ ¹öÀü :
1.5

checkedMap

public static <K, V> Map <K, V> checkedMap(Map <K, V> m,
                                        Class <K> keyType,
                                        Class <V> valueType)
ÁöÁ¤µÈ ¸ÊÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. Å° ¶Ç´Â °ªÀÌ ºÎÁ¤ÇÑ ÇüŸ¦ º¸°ü À¯ÁöÇÏ´Â ¸ÅÇÎÀ» »ðÀÔÇÏ·Á°í ÇÏÀÚ, °ð¹Ù·Î ClassCastExceptionÀÌ ¹ß»ý µË´Ï´Ù. °°ÀÌ Å°¿¡ ÇöÀç °ü·ÃµÈ °ªÀ» º¯°æÇÏ·Á°í Çϸé, º¯°æÀÌ ¸Ê ÀÚü¸¦ °³ÀÔ½ÃÄÑ ½ÃµµµÇ´ÂÁö, ¸ÊÀÇ ¿£Æ®¸® ¼¼Æ® ºä·ÎºÎÅÍ ÃëµæµÈ Map.Entry ÀνºÅϽº¸¦ °³ÀÔ½ÃÄÑ ½ÃµµµÇ´Â °Í¿¡ °ü°è¾øÀÌ, °ð¹Ù·Î ClassCastExceptionÀÌ ¹ß»ý µË´Ï´Ù.

µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ »ý¼ºµÇ±â Àü¿¡ ºÎÁ¤ÇÑ ÇüÅÂÀÇ Å° ¶Ç´Â °ªÀÌ ¸Ê¿¡ Æ÷ÇÔµÇÁö ¾Ê°í, ¸Ê¿¡ÀÇ ÈļÓÀÇ ¾×¼¼½º°¡ ¸ðµÎ ºä (¶Ç´Â ÄÚ·¹Å©¼ÇºäÀÇ 1°³)¸¦ °³ÀÔ½ÃÄÑ ÇàÇØÁö´Â °æ¿ì, ¸Ê¿¡ ºÎÁ¤ÇÑ ÇüÅÂÀÇ Å°³ª °ªÀÌ Æ÷ÇÔµÇÁö ¾Ê´Â °ÍÀÌ º¸ÁõµË´Ï´Ù.

µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºäÀÇ »ç¿ë¿¡ ´ëÇؼ­´Â checkedCollection ¸Þ¼­µåÀÇ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

¸®ÅÏµÈ ¸ÊÀº ÁöÁ¤µÈ ¸ÊÀÌ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
m - µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ ¸®ÅÏµÈ ¸Ê
keyType - m°¡ º¸°ü À¯ÁöÇÏ´Â °ÍÀÌ ¿ë¼­µÈ Å°ÀÇ ÇüÅÂ
valueType - m°¡ º¸°ü À¯ÁöÇÏ´Â °ÍÀÌ ¿ë¼­µÈ °ªÀÇ ÇüÅÂ
¹Ýȯ°ª:
ÁöÁ¤µÈ ¸ÊÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä
µµÀÔµÈ ¹öÀü :
1.5

checkedSortedMap

public static <K, V> SortedMap <K, V> checkedSortedMap(SortedMap <K, V> m,
                                                    Class <K> keyType,
                                                    Class <V> valueType)
ÁöÁ¤µÈ ¼ÒÆ® ¸ÊÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä¸¦ ¸®ÅÏÇÕ´Ï´Ù. Å° ¶Ç´Â °ªÀÌ ºÎÁ¤ÇÑ ÇüŸ¦ º¸°ü À¯ÁöÇÏ´Â ¸ÅÇÎÀ» »ðÀÔÇÏ·Á°í ÇÏÀÚ, °ð¹Ù·Î ClassCastExceptionÀÌ ¹ß»ý µË´Ï´Ù. °°ÀÌ Å°¿¡ ÇöÀç °ü·ÃµÈ °ªÀ» º¯°æÇÏ·Á°í Çϸé, º¯°æÀÌ ¸Ê ÀÚü¸¦ °³ÀÔ½ÃÄÑ ½ÃµµµÇ´ÂÁö, ¸ÊÀÇ ¿£Æ®¸® ¼¼Æ® ºä·ÎºÎÅÍ ÃëµæµÈ Map.Entry ÀνºÅϽº¸¦ °³ÀÔ½ÃÄÑ ½ÃµµµÇ´Â °Í¿¡ °ü°è¾øÀÌ, °ð¹Ù·Î ClassCastExceptionÀÌ ¹ß»ý µË´Ï´Ù.

µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ »ý¼ºµÇ±â Àü¿¡ ºÎÁ¤ÇÑ ÇüÅÂÀÇ Å° ¶Ç´Â °ªÀÌ ¸Ê¿¡ Æ÷ÇÔµÇÁö ¾Ê°í, ¸Ê¿¡ÀÇ ÈļÓÀÇ ¾×¼¼½º°¡ ¸ðµÎ ºä (¶Ç´Â ÄÚ·¹Å©¼ÇºäÀÇ 1°³)¸¦ °³ÀÔ½ÃÄÑ ÇàÇØÁö´Â °æ¿ì, ¸Ê¿¡ ºÎÁ¤ÇÑ ÇüÅÂÀÇ Å°³ª °ªÀÌ Æ÷ÇÔµÇÁö ¾Ê´Â °ÍÀÌ º¸ÁõµË´Ï´Ù.

µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºäÀÇ »ç¿ë¿¡ ´ëÇؼ­´Â checkedCollection ¸Þ¼­µåÀÇ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

¸®ÅÏµÈ ¸ÊÀº ÁöÁ¤µÈ ¸ÊÀÌ Á÷·ÄÈ­ °¡´ÉÀÇ °æ¿ì´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
m - µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä°¡ ¸®ÅÏµÈ ¸Ê
keyType - m°¡ º¸°ü À¯ÁöÇÏ´Â °ÍÀÌ ¿ë¼­µÈ Å°ÀÇ ÇüÅÂ
valueType - m°¡ º¸°ü À¯ÁöÇÏ´Â °ÍÀÌ ¿ë¼­µÈ °ªÀÇ ÇüÅÂ
¹Ýȯ°ª:
ÁöÁ¤µÈ ¸ÊÀÇ µ¿ÀûÀ¸·Î ÇüÅ º¸ÁõµÈ ºä
µµÀÔµÈ ¹öÀü :
1.5

emptySet

public static final <T> Set <T> emptySet()
ºó¼¼Æ® (ºÒº¯)¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¼¼Æ®´Â Á÷·ÄÈ­°¡ °¡´ÉÇÕ´Ï´Ù. °°Àº À̸§À» ºÙÀÏ ¼ö ÀÖ¾ú´ø Çʵå¿Í´Â ´Þ¶ó, ÀÌ ¸Þ¼­µå´Â ÆĶó¹ÌÅÍÈ­ µË´Ï´Ù.

´ÙÀ½¿¡ ºó¼¼Æ®¸¦ ÃëµæÇϱâ À§ÇÑ Çü º¸ÁõµÈ ¹æ¹ýÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.


     Set<String> s = Collections.emptySet();
 
±¸Çö»óÀÇ ÁÖÀÇ£º ÀÌ ¸Þ¼­µåÀÇ ±¸Çö¿¡¼­´Â È£ÃâÇÒ °Í¿¡ °³º°ÀÇ Set °´Ã¼¸¦ ÀÛ¼ºÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â °°Àº À̸§À» ºÙÀÏ ¼ö ÀÖ¾ú´ø Çʵ带 »ç¿ëÇÑ ºñ±³ °¡´ÉÇÑ ÄÚ½ºÆ®°¡ ÀÖ´Â °Í °°Àº °ÍÀÔ´Ï´Ù (ÀÌ ¸Þ¼­µå¿Í´Â ´Þ¶ó, Çʵå´Â ÇüÅ º¸ÁõÇÏÁö ¾Ê´Â´Ù).

µµÀÔµÈ ¹öÀü :
1.5
°ü·Ã Ç׸ñ:
EMPTY_SET

emptyList

public static final <T> List <T> emptyList()
ºñ¾îÀÖ´Â ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù (ºÒº¯). ÀÌ ¸®½ºÆ®´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

´ÙÀ½¿¡ ºñ¾îÀÖ´Â ¸®½ºÆ®¸¦ ÃëµæÇϱâ À§ÇÑ Çü º¸ÁõµÈ ¹æ¹ýÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.


     List<String> s = Collections.emptyList();
 
±¸Çö»óÀÇ ÁÖÀÇ£º ÀÌ ¸Þ¼­µåÀÇ ±¸Çö¿¡¼­´Â °¢ È£ÃâÇÒ °Í¿¡ °³º°ÀÇ List °´Ã¼¸¦ ÀÛ¼ºÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â °°Àº À̸§À» ºÙÀÏ ¼ö ÀÖ¾ú´ø Çʵ带 »ç¿ëÇÑ ºñ±³ °¡´ÉÇÑ ÄÚ½ºÆ®°¡ ÀÖ´Â °Í °°Àº °ÍÀÔ´Ï´Ù (ÀÌ ¸Þ¼­µå¿Í´Â ´Þ¶ó, Çʵå´Â ÇüÅ º¸ÁõÇÏÁö ¾Ê´Â´Ù).

µµÀÔµÈ ¹öÀü :
1.5
°ü·Ã Ç׸ñ:
EMPTY_LIST

emptyMap

public static final <K, V> Map <K, V> emptyMap()
ºñ¾îÀÖ´Â ¸ÊÀ» ¸®ÅÏÇÕ´Ï´Ù (ºÒº¯). ÀÌ ¸ÊÀº Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

´ÙÀ½¿¡ ºó¼¼Æ®¸¦ ÃëµæÇϱâ À§ÇÑ Çü º¸ÁõµÈ ¹æ¹ýÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.


     Map<String, Date> s = Collections.emptyMap();
 
±¸Çö»óÀÇ ÁÖÀÇ£º ÀÌ ¸Þ¼­µåÀÇ ±¸Çö¿¡¼­´Â °¢ È£ÃâÇÒ °Í¿¡ °³º°ÀÇ Map °´Ã¼¸¦ ÀÛ¼ºÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â °°Àº À̸§À» ºÙÀÏ ¼ö ÀÖ¾ú´ø Çʵ带 »ç¿ëÇÑ ºñ±³ °¡´ÉÇÑ ÄÚ½ºÆ®°¡ ÀÖ´Â °Í °°Àº °ÍÀÔ´Ï´Ù (ÀÌ ¸Þ¼­µå¿Í´Â ´Þ¶ó, Çʵå´Â ÇüÅ º¸ÁõÇÏÁö ¾Ê´Â´Ù).

µµÀÔµÈ ¹öÀü :
1.5
°ü·Ã Ç׸ñ:
EMPTY_MAP

singleton

public static <T> Set <T> singleton(T o)
ÁöÁ¤µÈ °´Ã¼¸¸À» Æ÷ÇÔÇÏ°í ÀÖ´Â ºÒº¯¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¸®ÅÏµÈ ¼¼Æ®´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
o - ¸®ÅÏµÈ ¼¼Æ®¿¡ Æ÷ÇԵǰí ÀÖ´Â À¯ÀÏÇÑ °´Ã¼
¹Ýȯ°ª:
ÁöÁ¤µÈ °´Ã¼¸¸À» Æ÷ÇÔÇÏ°í ÀÖ´Â ºÒº¯¼¼Æ®

singletonList

public static <T> List <T> singletonList(T o)
ÁöÁ¤µÈ °´Ã¼¸¸À» Æ÷ÇÔÇÏ°í ÀÖ´Â ºÒº¯ÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¸®ÅÏµÈ ¸®½ºÆ®´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
o - ¸®ÅÏµÈ ¸®½ºÆ®¿¡ Æ÷ÇԵǰí ÀÖ´Â À¯ÀÏÇÑ °´Ã¼
¹Ýȯ°ª:
ÁöÁ¤µÈ °´Ã¼¸¸À» Æ÷ÇÔÇÏ°í ÀÖ´Â ºÒº¯¼¼Æ®
µµÀÔµÈ ¹öÀü :
1.3

singletonMap

public static <K, V> Map <K, V> singletonMap(K key,
                                          V value)
ÁöÁ¤µÈ °ªÀ¸·Î ÁöÁ¤µÈ °´Ã¼¸¸À» ¸ÅÇÎ ÇÏ´Â ºÒº¯ÀÇ ¸ÊÀ» ¸®ÅÏÇÕ´Ï´Ù. ¸®ÅÏµÈ ¸ÊÀº Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
key - ¸®ÅÏµÈ ¸Ê¿¡ Æ÷ÇԵǰí ÀÖ´Â À¯ÀÏÇÑ Å°
value - ¸®ÅÏµÈ ¸Ê¿¡ ÀÇÇØ key°¡ ¸ÅÇÎ µÇ´Â °ª
¹Ýȯ°ª:
ÁöÁ¤ÇÑ Å°¿Í °ªÀÇ ¸ÅÇθ¸ÀÌ Æ÷ÇԵǴ ºÒº¯ÀÇ ¸Ê
µµÀÔµÈ ¹öÀü :
1.3

nCopies

public static <T> List <T> nCopies(int n,
                                  T o)
ÁöÁ¤µÈ °´Ã¼ÀÇ n°³ÀÇ Ä«ÇÇ·Î ±¸¼ºµÇ´Â ºÒº¯ÀÇ ¸®½ºÆ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. »õ·Ó°Ô ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø µ¥ÀÌÅÍ °´Ã¼´Â µ¥ÀÌÅÍ °´Ã¼¿¡ÀÇ 1°³ÀÇ ÂüÁ¶¸¦ °¡Áö´Â ÀÛÀº °´Ã¼ÀÔ´Ï´Ù. ÀÌ ¸Þ¼­µå´Â List.addAll ¸Þ¼­µå¿Í ÇÔ²² ¸®½ºÆ®¸¦ È®ÀåÇϱâ À§Çؼ­ »ç¿ëµË´Ï´Ù. ¸®ÅÏµÈ ¸®½ºÆ®´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
n - ¸®ÅÏµÈ ¸®½ºÆ®ÀÇ ¿ä¼Ò¼ö
o - ¸®ÅÏµÈ ¸®½ºÆ®¿¡ ¹Ýº¹ÇØ ³ªÅ¸³ª´Â ¿ä¼Ò
¹Ýȯ°ª:
ÁöÁ¤µÈ °´Ã¼ÀÇ n°³ÀÇ Ä«ÇÇ·Î ±¸¼ºµÇ´Â ºÒº¯ÀÇ ¸®½ºÆ®
¿¹¿Ü:
IllegalArgumentException - n < 0ÀÎ °æ¿ì
°ü·Ã Ç׸ñ:
List.addAll(Collection), List.addAll(int, Collection)

reverseOrder

public static <T> Comparator <T> reverseOrder()
Comparable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °´Ã¼ÀÇ Ä÷º¼ÇÀ¸·Î ¡¸ÀÚ¿¬ Á¤·Ä¡¹ÀÇ ¿ªÀ» ¹«È­ ÇÏ´Â ÄÄÆÛ·¹ÀÌÅ͸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÚ¿¬ ¼ø¼­ºÎ¶õ °´Ã¼ ÀÚ½ÅÀÇ compareTo ¸Þ¼­µå°¡ °¡¸®Å°´Â ¼ø¼­ÀÔ´Ï´Ù. ÀÌ°Í¿¡ ÀÇÇØ Comparable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °´Ã¼ÀÇ Ä÷º¼Ç (¶Ç´Â ¹è¿­)À» °£´ÜÇÏ°Ô ¿ªÀÚ¿¬ ¼ø¼­·Î ¼ÒÆ® (¶Ç´Â º¸¼ö) ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î a°¡ ij¸¯ÅÍ ¶óÀÎÀÇ ¹è¿­À̶ó°í °¡Á¤ÇÕ´Ï´Ù.

                Arrays.sort(a, Collections.reverseOrder());
 
¿ªÀÎ ³ª¹«ÀÇ »çÀü ÆíÁý¼ø¼­ (¾ËÆĺª¼ø¼­)·Î ¹è¿­À» ¼ÒÆ® ÇÕ´Ï´Ù.

¸®ÅÏµÈ ÄÄÆÛ·¹ÀÌÅÍ´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù.

¹Ýȯ°ª:
Comparable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °´Ã¼ÀÇ Ä÷º¼ÇÀ¸·Î ¿ªÀÇ ÀÚ¿¬ ¼ø¼­¸¦ ¹«È­ ÇÏ´Â ÄÄÆÛ·¹ÀÌÅÍ
°ü·Ã Ç׸ñ:
Comparable

reverseOrder

public static <T> Comparator <T> reverseOrder(Comparator <T> cmp)
ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ ÀÇ ¿ª¼ø¼­¸¦ ¹«È­ ÇÏ´Â ÄÄÆÛ·¹ÀÌÅ͸¦ ¸®ÅÏÇÕ´Ï´Ù. ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ°¡ nullÀÎ °æ¿ì, ÀÌ ¸Þ¼­µå´Â reverseOrder() ¿Í µî°¡°¡ µË´Ï´Ù (Áï, Comparable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °´Ã¼ÀÇ Ä÷º¼Ç¿¡ ¿ªÀÇ ¡¸ÀÚ¿¬ ¼ø¼­¡¹¸¦ ¹«È­ ÇÏ´Â ÄÄÆÛ·¹ÀÌÅ͸¦ µ¹·ÁÁØ´Ù).

¸®ÅÏµÈ ÄÄÆÛ·¹ÀÌÅÍ´Â Á÷·ÄÈ­ °¡´ÉÇÕ´Ï´Ù (ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ µµ Á÷·ÄÈ­ °¡´ÉÇÑ°¡ nullÀÎ °æ¿ì).

¹Ýȯ°ª:
ÁöÁ¤µÈ ÄÄÆÛ·¹ÀÌÅÍ ÀÇ ¿ª¼ø¼­¸¦ ¹«È­ ÇÏ´Â ÄÄÆÛ·¹ÀÌÅÍ
µµÀÔµÈ ¹öÀü :
1.5

enumeration

public static <T> Enumeration <T> enumeration(Collection <T> c)
ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ¿­°Å¸¦ ¸®ÅÏÇÕ´Ï´Ù. Ä÷º¼ÇÀº ¿­°Å¸¦ ÇÊ¿ä·Î ÇÏ´Â Á¾·¡ÀÇ API¿Í ÀÇ »óÈ£ ¿î¿ë¼ºÀ» Á¦°øÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
c - ¿­°Å°¡ ¸®ÅÏµÈ Ä÷º¼Ç
¹Ýȯ°ª:
ÁöÁ¤µÈ Ä÷º¼ÇÀÇ ¿­°Å
°ü·Ã Ç׸ñ:
Enumeration

list

public static <T> ArrayList <T> list(Enumeration <T> e)
ÁöÁ¤µÈ ¿­°Å¿¡ ÀÇÇØ ¸®ÅÏµÈ ¿ä¼Ò¸¦ Æ÷ÇÔÇÑ ¹è¿­ ¸®½ºÆ®¸¦, ¸®ÅÏµÈ Â÷·Ê·Î ¸®ÅÏÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¿¡¼­´Â ¿­°Å¸¦ µ¹·ÁÁÖ´Â Á¾·¡ÀÇ API¿Í Ä÷º¼ÇÀ» ÇÊ¿ä·Î ÇÏ´Â »õ·Î¿î API¿Í ÀÇ »óÈ£ ¿î¿ë¼ºÀ» ½ÇÇöÇÏ°í ÀÖ½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
e - ¸®ÅÏµÈ ¹è¿­ ¸®½ºÆ®ÀÇ ¿ä¼Ò¸¦ Á¦°øÇÏ´Â ¿­°Å
¹Ýȯ°ª:
ÁöÁ¤µÈ ¿­°Å¿¡ ÀÇÇØ ¸®ÅÏµÈ ¿ä¼Ò¸¦ Æ÷ÇÔÇÑ ¹è¿­ ¸®½ºÆ®
µµÀÔµÈ ¹öÀü :
1.4
°ü·Ã Ç׸ñ:
Enumeration, ArrayList

frequency

public static int frequency(Collection <? > c,
                            Object  o)
ÁöÁ¤µÈ Ä÷º¼Ç³»¿¡¼­ ÁöÁ¤µÈ °´Ã¼¿Í µî°¡ÀÎ ¿ä¼ÒÀÇ ¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù. Áï, (o == null ? e == null : o.equals(e)) ÀÎ °Í °°Àº Ä÷º¼Ç³»ÀÇ ¿ä¼Ò e ¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
c - o ºóµµ¸¦ ÆÇÁ¤ÇÏ´Â Ä÷º¼Ç
o - ºóµµ¸¦ ÆÇÁ¤ÇÏ´Â °´Ã¼
¿¹¿Ü:
NullPointerException - c°¡ nullÀÎ °æ¿ì
µµÀÔµÈ ¹öÀü :
1.5

disjoint

public static boolean disjoint(Collection <? > c1,
                               Collection <? > c2)
ÁöÁ¤µÈ 2°³ÀÇ Ä÷º¼Ç¿¡ °øÅëÀÇ ¿ä¼Ò°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì, true¸¦ ¸®ÅÏÇÕ´Ï´Ù.

Collection ¹ü¿ë ±Ô¾à¿¡ ÁØ°ÅÇÏÁö ¾Ê´Â Ä÷º¼Ç¿¡ ´ëÇؼ­ ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â ÁÖÀÇ°¡ ÇÊ¿äÇÕ´Ï´Ù. ±¸ÇöÀÌ, ÇÑÆíÀÇ Ä÷º¼Ç¿¡ ´ëÇؼ­ 󸮸¦ ¹Ýº¹ÇØ ½ÇÇàÇØ, ÇÑÆíÀÇ Ä÷º¼Ç³»¿¡ Æ÷ÇÔµÉÁö ¾î¶³Áö¸¦ Å×½ºÆ®ÇÏ´Â (¶Ç´Â µî°¡ÀÎ °è»êÀ» ½ÇÇàÇÑ´Ù) °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÇÑÆíÀÇ Ä÷º¼ÇÀÌ ºñÇ¥ÁØÀÇ µî°¡ Å×½ºÆ®¸¦ »ç¿ëÇÏ´Â °æ¿ì (¼ø¼­°¡ µî°¡¿ÍÀÇ È£È¯¼ºÀ» °¡ÁöÁö ¾Ê´Â SortedSet ³ª, IdentityHashMap Å° ¼¼Æ®¿Í °°ÀÌ), ¾çÂÊ ¸ðµÎÀÇ Ä÷º¼ÇÀ¸·Î °°Àº ºñÇ¥ÁØÀÇ µî°¡ Å×½ºÆ®¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ìÀÇ ÀÌ ¸Þ¼­µåÀÇ °á°ú´Â Á¤ÀǵÇÁö ¾Ê½À´Ï´Ù.

¾çÂÊ ¸ðµÎÀÇ ÆĶó¹ÌÅͳ»¿¡¼­ °°Àº Ä÷º¼ÇÀ» °Ç³×ÁÖ´Â °ÍÀº Çã¿ë µÇ°í ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì Ä÷º¼ÇÀÌ ºñ¾îÀÖ´Â °æ¿ì¿¡°Ô¸¸, ¸Þ¼­µå´Â true¸¦ ¸®ÅÏÇÕ´Ï´Ù.

ÆĶó¹ÌÅÍ:
c1 - Ä÷º¼Ç
c2 - Ä÷º¼Ç
¿¹¿Ü:
NullPointerException - ¾î´À ÂÊÀΰ¡ÀÇ Ä÷º¼ÇÀÌ nullÀÎ °æ¿ì
µµÀÔµÈ ¹öÀü :
1.5

addAll

public static <T> boolean addAll(Collection <?  super T> c,
                                 T... a)
ÁöÁ¤µÈ ¸ðµç ¿ä¼Ò°¡ ÁöÁ¤µÈ Ä÷º¼Ç¿¡ Ãß°¡ÇÕ´Ï´Ù. Ãß°¡µÇ´Â ¿ä¼Ò´Â °³º°ÀûÀ¸·Î ÁöÁ¤µÉ±î ¹è¿­·Î¼­ ÁöÁ¤µË´Ï´Ù. ÀÌ Æí¸®ÇÑ ¸Þ¼­µåÀÇ µ¿ÀÛÀº, c.addAll(Arrays.asList(elements))¿Í µ¿ÀÏÇÕ´Ï´Ù¸¸, ÀÌ ¸Þ¼­µå´Â ´ëºÎºÐÀÇ ±¸ÇöÀ¸·Î ¸Å¿ì °í¼ÓÀ¸·Î ½ÇÇàµË´Ï´Ù.

¿ä¼Ò¸¦ °³º°ÀûÀ¸·Î ÁöÁ¤ÇÏ´Â °æ¿ì, ÀÌ ¸Þ¼­µå¿¡¼­´Â ´ÙÀ½ÀÇ ¿¹ÀÇ °°°Ô, ¿©·¯Á¾·ùÀÇ ¿ä¼Ò¸¦ ±âÁ¸ÀÇ Ä÷º¼Ç¿¡ °£´ÜÇÏ°Ô Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.


     Collections.addAll(flavors, "Peaches 'n Plutonium", "Rocky Racoon");
 

ÆĶó¹ÌÅÍ:
c - elements°¡ »ðÀԵǴ Ä÷º¼Ç
a - c¿¡ »ðÀԵǴ ¿ä¼Ò
¹Ýȯ°ª:
ÀÌ È£ÃâÀÇ °á°ú, Ä÷º¼ÇÀÌ º¯°æµÇ¾úÀ» °æ¿ì´Â true
¿¹¿Ü:
UnsupportedOperationException - c°¡ add ¸Þ¼­µå¸¦ Áö¿ø ÇÏÁö ¾Ê´Â °æ¿ì
NullPointerException - elements¿¡ 1°³ ÀÌ»óÀÇ null ¿ä¼Ò°¡ Æ÷ÇԵǾî ÀÖ¾î, c°¡ null ¿ä¼Ò¸¦ Áö¿ø ÇÏÁö ¾Ê´ÂÁö, c ¶Ç´Â elements°¡ nullÀÎ °æ¿ì
IllegalArgumentException - elements °ªÀÇ Æ¯¼ºÀÌ ¿øÀÎÀ¸·Îc¿¡ Ãß°¡ÇÒ ¼ö ¾ø´Â °æ¿ì
µµÀÔµÈ ¹öÀü :
1.5
°ü·Ã Ç׸ñ:
Collection.addAll(Collection)

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.