Collections.sort(arr)
ArrayList를 오름차순으로 정렬합니다.
Collections.sort(arr, Collections.reverseOrder())
2번째 인자로 내림차순 정렬을 나타내는 Comparator.reverseOrder()를 전달해서, ArrayList를 내림차순으로 정렬할 수 있습니다.
// ArrayList 준비
ArrayList<Integer> arr = new ArrayList<>(Arrays.asList(5,1,4,2,3));
System.out.println(arr); // [5, 1, 4, 2, 3]
// 오름차순으로 정렬
Collections.sort(arr);
System.out.println(arr); // [1, 2, 3, 4, 5]
// 내림차순으로 정렬
Collections.sort(arr, Collections.reverseOrder());
System.out.println(arr); // [5, 4, 3, 2, 1]
ArrayList 인스턴스 자체에 sort()를 사용해서 정렬도 가능합니다.
// ArrayList 준비
ArrayList<Integer> arr = new ArrayList<>(Arrays.asList(5,3,1,4,2));
System.out.println(arr); // [5, 3, 1, 4, 2]
// 오름차순으로 정렬
arr.sort(Comparator.naturalOrder());
System.out.println(arr); // [1, 2, 3, 4, 5]
// 내림차순으로 정렬
arr.sort(Comparator.reverseOrder());
System.out.println(arr); // [5, 4, 3, 2, 1]
이 방법의 경우 Collections와 다르게 인자로 Comparator 를 전달해야 합니다.
또한 Comparator 를 직접 생성하여 사용자가 원하는 기준으로 정렬도 가능합니다.
// 오름차순으로 정렬
arr.sort(new Comparator<Integer>() {
@Override
public int compare(Integer a, Integer b) {
return a - b;
}
});
System.out.println(arr); // [1, 2, 3, 4, 5]
// 오름차순으로 정렬
arr.sort((a, b) ->
a - b
);
// 내림차순으로 정렬
arr.sort((a, b) ->
b - a
);
Java 8 이상 버전에서는 복잡한 Comparator를 일일이 지정하는 대신 람다 표현식으로 간단하게 대체할 수 있습니다.