Array
Arrays.sort()
int[] numbers = new int[]{3, 30, 34, 5, 9};
// 0. ๊ฐ๋จ ์ถ๋ ฅ
System.out.println(Arrays.toString(numbers));
// [3, 30, 34, 5, 9]
// 1. ์ค๋ฆ์ฐจ์
Arrays.sort(numbers);
// 2. ๋ด๋ฆผ์ฐจ์
Arrays.sort(numbers. Collections.reverseOrder());
์ปค์คํ ์ ๋ ฌ (์ค๋ฆ์ฐจ์)
int[] numbers = new int[]{3, 30, 34, 5, 9};
// 1. ๋๋คํจ์
Arrays.sort(numbers, (n1, n2) -> (n1).compareTo(n2));
// 2. ์ค๋ฒ๋ผ์ด๋ฉ
Arrays.sort(strings, new Comparator<int>(){
@Override
public int compare(int n1, int n2) {
return n1.compareTo(n2);
// return n1 - n2;
}
});
CompareTo()
a.compareTo(b)
a, b, c, ...
- ์ค๋ฆ์ฐจ์
a
>b
์ธ ์์ด์ ์ ์งa
<b
๋ผ๋ฉด,a
์b
์ ์์ ๋ณ๊ฒฝ
CompareTo() ์์ฉ
- ex. ์ซ์๋ค์ ์ฐ์์ผ๋ก ์ด์ด๋ถ์์ ๋, ํฐ ์ซ์๋ฅผ ๋ง๋ค์ด๋ผ. (
s1 = "3", s2 = "34"
,334
s1, s2, s3, ..
) - s2+s1 (
343
)๊ฐ s1+s2 (334
)๋ณด๋ค ํฌ๋ฉด,s1
๊ณผs2
์์น ๋ณ๊ฒฝ =>343
s2, s1, s3, ...
String[] strings = new String[]{"5", "53", "50", "9"} // 1 Arrays.sort(strings, (s1, s2) -> (s2+s1).compareTo(s1+s2)); // 2 Arrays.sort(strings, new Comparator(){ @Override public int compare(String s1, String s2) { return (s2+s1).compareTo(s1+s2); } });
List (Java 8 ์ดํ)
List.sort()
ArrayList<String> list = new ArrayList<>(Arrays.asList("C", "A", "a"));
// 0. ๊ฐ๋จ ์ถ๋ ฅ
System.out.println(list);
// [C, A, a]
// 1. ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
list.sort(Comparator.naturalOrder());
// 2. ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
list.sort(Comparator.reverseOrder());
// 3. ๋์๋ฌธ์ ๊ตฌ๋ถ์์ด ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
list.sort(String.CASE_INSENSITIVE_ORDER);
// 4. ๋์๋ฌธ์ ๊ตฌ๋ถ์์ด ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
list.sort(Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));
์ปค์คํ ์ ๋ ฌ
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3));
// 1. ์ค๋ฆ์ฐจ์
list.sort(Integer::compareTo);
// 2. ๋ด๋ฆผ์ฐจ์
list.sort((n1, n2) -> n2.compareTo(n1));