Comparator와 람다를 잘 이용하면 코드 양을 줄일 수 있고 단순화시킬 수 있다.
자바의 대부분의 collection 이나 자료구조는 정렬할 수 있는 sort()와 같은 메서드를 갖고 있다.
자바의 객체간 비교를 하는 경우에는 객체간 비교 방법으로 Comparator로 명시해줘야한다.
객체 리스트를 정렬할 때 사용.
List<User> userList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
userList.add(new User("testUser" + i, i));
}
새로운 리스트를 만들어 반복문으로 리스트에 넣어준다.
여기서 유저들의 나이로 정렬하고 싶다면 List에 sort() 메서드를 사용한다.
이 때 sort() 메서드는 User를 비교할 Comparator를 요구한다.
userList.sort(Comparator.comparing(User::age)); // 오름차순
userList.sort(Comparator.comparing(User::age).reversed(); // 내림차순