Comparator, Comparator
java.lang.Comparable ์ธํฐํ์ด์ค - ์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๊ฐ์ฒด ์ค์ค๋ก์๊ฒ ๋ถ์ฌํ๋ ํ๊ฐ์ง ๊ธฐ๋ณธ ์ ๋ ฌ ๊ท์น์ ์ค์ ํ๋ค
Comparable์ ๊ตฌํํ๊ณ ์๋ ํด๋์ค๋ค์ ๊ฐ์ ํ์ ์ ์ธ์คํด์ค๋ผ๋ฆฌ ์๋ก ๋น๊ตํ ์ ์๋ ํด๋์ค์ด๋ค. (wrapper ํด๋์ค, String, Date, Fileโฆ). ๊ธฐ๋ณธ ์ ๋ ฌ ๊ธฐ์ค์ ๊ตฌํํ๋ ๋ฐ์ ์ฌ์ฉํ๋ค.
์ธํฐํ์ด์ค ๋ด์ int compareTo(T o) ๋ฉ์๋๋ ๊ฐ์ฒด ์๊ธฐ ์์ (this)์ ๋งค๊ฐ๋ณ์ ๊ฐ์ฒด o๋ฅผ ๋น๊ตํ๋ค. ๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ผ๋ฉด 0, ๋น๊ตํ๋ ๊ฐ๋ณด๋ค ์์ผ๋ฉด ์์, ํฌ๋ฉด ์์๋ฅผ ๋ฐํํ๋ค
๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋๋ฐ, ๋ด๋ฆผ์ฐจ์ or ๋ค๋ฅธ ๊ธฐ์ค์ ๋ฐ๋ผ ์ ๋ ฌํ๊ณ ์ถ์ผ๋ฉด Comparator๋ฅผ ๊ตฌํํด์ ์ ๋ ฌ๊ธฐ์ค์ ์ ๊ณตํ ์ ์๋ค.
java.util.Comparator ์ธํฐํ์ด์ค - ์ ๋ ฌ ๋์ ํด๋์ค์ ์ฝ๋๋ฅผ ์ง์ ์์ ํ์ง ๋ชปํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
๊ธฐ๋ณธ ์ ๋ ฌ ๊ธฐ์ค ์ธ์ ๋ค๋ฅธ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ ์ ํ ๋ ์ฌ์ฉ
Comparator ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ฅผ Arrays.sort()๋ Collections.sort() ๊ฐ์ ์ ๋ ฌ ๋ฉ์๋์ ์ถ๊ฐ ์ธ์๋ก ๋๊ธด๋ค.
์ธํฐํ์ด์ค ๋ด์ int compare(T o1, T o2) ๋ฉ์๋๋ ๋ ๋งค๊ฐ๋ณ์ ๊ฐ์ฒด๋ฅผ ๋น๊ตํ๋ค.
Comparator๋ฅผ ์ต๋ช ํด๋์ค, ๋๋คํํ์์ผ๋ก ๋์ฒดํ ์ ์๋ค.
Stream์ผ๋ก ์ปฌ๋ ์ ์ด๋ ๋ฐฐ์ด์ ์ฝ๊ณ sorted() ๋ฉ์๋๋ก Comparator ๊ตฌํ์ฒด๋ฅผ ๋ฐ์์ ์ ๋ ฌํ ๋ค ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ์์ฑํ ์๋ ์๋ค.
Last updated