Java¿¡¼ Ä÷º¼ÇÀÇ Áߺ¹À» Á¦°ÅÇÏ´Â ¹æ¹ý
Java¿¡¼ Ä÷º¼Ç¿¡¼ Áߺ¹ Á¦°Å
¿ä»õ Java °³¹ß¿¡ ºüÁ®¼ Çã¿ìÀû ÁßÀε¥ °³¹ßÀ» ÇÏ´Ù º¸¸é µ¥ÀÌÅ͸¦ Ä÷º¼Ç¿¡ ´ã¾Æ¼ ó¸®ÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù.
±×¸®°í ±× Ä÷º¼Ç¿¡ Áߺ¹µÈ µ¥ÀÌÅÍ°¡ ¹ß»ýÇÏ´Â ¹®Á¦°¡ ÀÖ¾ú´Âµ¥ ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ ¹æ¹ýÀ» ¾Ë¾Æº¸°Ú½À´Ï´Ù.
¸ÕÀú ¿¹¸¦ À§Çؼ ¾Æ·¡ÀÇ Ä÷º¼ÇÀ» »ç¿ëÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
1 | List<Integer> intList = Arrays.asList(1,2,3,4,5,5,2,1,5); |
ÃÖÁ¾ °á°ú´Â ´ÙÀ½°ú °°ÀÌ ³ª¿À°Ô µË´Ï´Ù.
1 | intList = [1, 2, 3, 4, 5] |
Step 1. HashSetÀ» »ç¿ëÇÏ¿© Áߺ¹ Á¦°ÅÇϱâ
JavaÀÇ Ä÷º¼Ç Áß Set Ä÷º¼Ç Áß ÇϳªÀÎ HashSetÀ» ÅëÇؼ Á¦°ÅÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
1 | List result1 = new ArrayList(new HashSet(intList)); |
Áߺ¹µÈ Ä÷º¼ÇÀ» HashSet¿¡ ³Ö°Ô µÇ¸é Set Ä÷º¼Ç Ư¼º »ó Áߺ¹µÈ ÀÚ·á´Â Á¦°ÅµË´Ï´Ù.
ÀÌ·¸°Ô Áߺ¹µÈ °á°ú¸¦ ´Ù½Ã ArrayList·Î ³Ö°Ô µÇ¸é Áߺ¹µÈ ÀÚ·á´Â »ç¶óÁö°Ô µË´Ï´Ù.
ÇÏÁö¸¸ ÀÌ ¹æ¹ýÀº ½â ÁÁÀº ¹æ¹ýÀº ¾Æ´Ñ °Í °°½À´Ï´Ù.
±âÁ¸ Áߺ¹µÈ ÀÚ·áÇüÀ» HashSetÀ¸·Î º¯°æ ÈÄ ´Ù½Ã ArrayList·Î º¯°æÇÏ´Â °ÍÀº ºÎ´ãÀÌ µË´Ï´Ù.
Step 2. Java8ÀÇ StreamÀ» »ç¿ëÇϱâ
Java8Àº 7°ú ºñ±³ÇÏ¿© ´Ù¾çÇÑ °ÍÀÌ Ãß°¡µÇ°í º¯°æÀÌ µÇ¾ú½À´Ï´Ù.
ÀÌ Áß StreamÀÇ distinct() ¸Þ¼µå¸¦ È°¿ëÇÏ¿© Áߺ¹À» Á¦°ÅÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.
1 | List result1 = intList.stream().distinct().collect(Collectors.toList()); |
streamÀÇ distinct()¸¦ »ç¿ëÇÏ°Ô µÇ¸é Áߺ¹µÈ °ªÀ» Á¦°ÅÇÏ°Ô µË´Ï´Ù.
±×¸®°í collect()¸¦ ÅëÇØ List·Î ¹ÝȯÇÏ°Ô µÇ¸é ¾ÆÁÖ ±ò²ûÇÏ°Ô Ã³¸®ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
°á·Ð¡¦Java8!
°³ÀÎÀûÀ¸·Î Step2 ¹æ¹ýÀ¸·Î Ä÷º¼ÇÀÇ Áߺ¹ÀڷḦ Á¦°ÅÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÏ´Â°Ô ÁÁÀº °Í °°½À´Ï´Ù.
ÀÌ·± ºñ½ÁÇÑ °í¹ÎÀ» ÇϽô ºÐµé¿¡°Ô ÁÁÀº ÀÚ·á°¡ µÇ¾úÀ¸¸é ÇÕ´Ï´Ù.
¿ä»õ ¿ÀǼҽº ¹× ȸ»ç ¾÷¹«¸¦ ÁøÇàÇÏ´À¶ó ¹Ù»ÚÁö¸¸¡¦²ÙÁØÈ÷ Æ÷½ºÆÃÀ» ´Ù½Ã Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù!
Ãß¿îµ¥ °¨±â Á¶½ÉÇϽðí, ¹æ¹®ÇØÁּż °¨»çÇÕ´Ï´Ù!