저번 Comparable 글에 이어 Comparator에 대한 글을 작성해보려 한다.
Comparator
1. Comparator?
- 기본적이지 않은 정렬(int/long을 내림차순 정렬, String을 사전역순으로 정렬, 여러개의 기준으로 정렬...)할 때 사용한다.
예를 들어, 아래와 같은 리스트가 있다고 치자. 이 리스트는 Book2 클래스로 구성되어 있는데, 이 Book2 클래스는 title(책 제목), author(저자), company(출판사), year(출간년도)로 구성되어 있다.
( 단순한 list (int로만 구성되었거나하는 list)를 Comparator를 이용해서 정렬하는 예제는 다루는 블로그 글이 많아서, 이 글에서는 일부러 class로 이루어진 list로 예시를 들었다. )
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class ComparatorEx {
public static void main(String[] args) {
ArrayList<Book2> list = new ArrayList<Book2>();
list.add(new Book2("다다다", "나씨", "D출판사", 2015));
list.add(new Book2("파타고니아 파도가 칠 때는 서핑을", "이본 쉬나드", "라이팅하우스", 2020));
list.add(new Book2("파타고니아 파도가 칠 때는 서핑을", "이본 쉬나드", "라이팅하우스", 2010));
list.add(new Book2("코스모스", "칼 세이건", "사이언스북스", 2010));
list.add(new Book2("코스모스", "칼 세이건", "사이언스북스", 2001));
list.add(new Book2("가가가", "이작가", "C출판사", 2001));
list.add(new Book2("가가가가가가", "이작가", "C출판사", 2001));
list.add(new Book2("파파파파파파", "이작가", "C출판사", 2001));
list.add(new Book2("니니니니니", "이작가", "C출판사", 2001));
list.add(new Book2("리리리리리", "이작가", "C출판사", 2001));
list.add(new Book2("마마마", "이작가", "C출판사", 2001));
list.add(new Book2("하하하", "이작가", "C출판사", 2001));
list.add(new Book2("나나나", "김씨", "B출판사", 1923));
}
}
class Book2 {
private String title;
private String author;
private String company;
private int year;
public Book2(String a, String b, String c, int d) {
this.title = a;
this.author = b;
this.company = c;
this.year = d;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public String getCompany() {
return company;
}
public int getYear() {
return year;
}
}
반응형
'Programming > Back-end(Java, JSP)' 카테고리의 다른 글
[Java] Comparable 정리 - 사용법, 예시코드 (0) | 2020.08.14 |
---|---|
[Java] printf 출력서식 - %d, %f, %c, %s (0) | 2020.07.04 |
[Java] Annotation (0) | 2020.04.18 |
[JSP] JSTL 용법 (0) | 2020.04.05 |
[JSP] EL(Expression Language) 용법, 연산자 (0) | 2020.04.05 |
VO(DTO), DAO, Service 용어 설명 (0) | 2020.03.18 |
[JSP] 내장객체 (기본객체, Implicit Objects) (0) | 2020.03.12 |
[Java] 생활코딩 Java1 Method 강의 정리 (0) | 2020.01.20 |