๐ฏ ์์ดํ 42. ์ต๋ช ํด๋์ค๋ณด๋ค๋ ๋๋ค๋ฅผ ์ฌ์ฉํ๋ผ.
์์ ์๋ ์๋ฐ์์ ํจ์ ํ์
์ ํํํ ๋ ์ถ์ ๋ฉ์๋๋ฅผ ํ๋๋ง ๋ด์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋ฐ ์ธํฐํ์ด์ค์ ์ธ์คํด์ค๋ฅผ ํจ์๊ฐ์ฒด๋ผ๊ณ ํ์ฌ, ํน์ ํจ์๋ ๋์์ ๋ํ๋ด๋ ๋ฐ ์ผ๋ค.
์ต๋ช ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ํจ์ ๊ฐ์ฒด๋ก ์ฌ์ฉ - ๋ก์ ๊ธฐ๋ฒ์ด๋ค!
public class Item43 { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("test3"); list.add("te2st3"); list.add("test4"); list.add("5test3"); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { return Integer.compare(o1.length(), o2.length()); } }); list.forEach(System.out::println); } }
์ ๋ต ํจํด์ฒ๋ผ, ํจ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ๊ณผ๊ฑฐ ๊ฐ์ฒด ์งํฅ ๋์์ธ ํจํด์๋ ์ต๋ช ํด๋์ค๋ฉด ์ถฉ๋ถํ๋ค.
์๋ฐ8์ ์์ ์ถ์ ๋ฉ์๋ ํ๋์ง๋ฆฌ ์ธํฐํ์ด์ค๋ ํน๋ณํ ์๋ฏธ๋ฅผ ์ธ์ ๋ฐ์ ํน๋ณํ ๋์ฐ๋ฅผ ๋ฐ๊ฒ ๋์๋ค.
์ง๊ธ์ ํจ์ํ ์ธํฐํ์ด์ค๋ผ ๋ถ๋ฅด๋ ์ด ์ธํฐํ์ด์ค๋ค์ ์ธ์คํด์ค๋ฅผ ๋๋ค์์ ์ฌ์ฉํด ๋ง๋ค ์ ์๊ฒ ๋ ๊ฒ์ด๋ค.
๋๋ค์์ ํจ์ ๊ฐ์ฒด๋ก ์ฌ์ฉ - ์ต๋ช ํด๋์ค ๋์ฒด
public class Item43 { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("test3"); list.add("te2st3"); list.add("test4"); list.add("5test3"); // 1 Collections.sort(list, (s1, s2) -> Integer.compare(s1.length(), s2.length())); // 2 Collections.sort(list, comparingInt(String::length)); // 3 list.sort(comparingInt(String::length)); list.forEach(System.out::println); } }
ํ์ ์ ๋ช ์ํด์ผ ์ฝ๋๊ฐ ๋ ๋ช ํํ ๋๋ง ์ ์ธํ๊ณ ๋, ๋๋ค์ ๋ชจ๋ ๋งค๊ฐ๋ณ์ ํ์ ์ ์๋ตํ์.
๋๋ค๋ ์ด๋ฆ์ด ์๊ณ ๋ฌธ์ํ๋ ๋ชปํ๋ค. ๋ฐ๋ผ์ ์ฝ๋ ์์ฒด๋ก ๋์์ด ๋ช ํํ ์ค๋ช ๋์ง ์๊ฑฐ๋ ์ฝ๋ ์ค ์๊ฐ ๋ง์์ง๋ฉด ๋๋ค๋ฅผ ์ฐ์ง ๋ง์์ผ ํ๋ค.
์ฐธ๊ณ ์๋ฃ
Joshua Bloch, ใEffective Java 3/Eใ, ๊ฐ์๋งต์ ์ฎ๊น, ํ๋ก๊ทธ๋๋ฐ์ธ์ฌ์ดํธ(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=