정렬할 객체 클래스
@Getter
@AllArgsConstructor
class Student {
int num;
String name;
String address;
}
getter 메소드를 만들어서 그 값을 기준으로 정렬한다. 추가 기준은 thenComparing 메소드를 사용한다.
기준이 복잡하면 Comparator 객체를 하나 만들어서 인자로 던져주면 된다. 깔끔한 코드가 만들어진다.
List<Student> list = new ArrayList<>();
Student s1 = new Student(11001244, "아무개", "서울시 금천구");
Student s2 = new Student(25109435, "김김김", "서울시 중랑구");
Student s3 = new Student(11005338, "사이다", "서울시 은평구");
list.add(s1);
list.add(s2);
list.add(s3);
//모두 오름차순 정렬
list.sort(Comparator.comparing(Student::getNum).thenComparing(Student::getName)
.thenComparing(Student::getAddress));
//이름만 내림차순
Comparator<Student> reverse = Comparator.comparing(Student::getName).reversed();
list.sort(Comparator.comparing(Student::getNum).thenComparing(reverse)
.thenComparing(Student::getAddress));
'java > java' 카테고리의 다른 글
[Java] I/O (1) | 2021.09.08 |
---|---|
[Java] 애노테이션 (1) | 2021.09.05 |
[Java] Enum (1) | 2021.08.27 |
[Java] 멀티쓰레드 프로그래밍 (1) | 2021.08.23 |
[Java] 예외 처리 (1) | 2021.08.12 |