자바에서 객체를 특정 기준으로 정렬하는 경우 Comparable이나 Comparator 인터페이스를 사용
(예제)Comparator 인터페이스를 이용한 다중 정렬
- Board 객체를 생성
- Comparator 인터페이스를 구현한 MultiComp 클래스 정의
- MultiComp 클래스를 이용해 Board 객체 정렬
- cnt 내림차순
- cnt 가 같은 경우 date 의 최신순서로 정렬 (내림차순)
- date 형식 : 20180801
public class Board { int cnt; String date; }
[예제1] Board 객체
Comparator 인터페이스를 구현한 MultiComp 클래스 정의
조건1. cnt 내림차순
조건2. cnt 가 같은 경우 date 의 최신순서로 정렬 (내림차순)
import java.util.Comparator; import com.Board; public class MultiComp implements Comparator< Board > { public MultiComp() { super(); } @Override public int compare(Board o1, Board o2) { int c1 = o1.getCnt(); int c2 = o2.getCnt(); if (c1 < c2) { return 1; } else if (c1 > c2) { return -1; } else { // c1 == c2 // (-1) 내림차순을 위한 부호 변환 return (-1) * (o1.getDate().compareTo(o2.getDate())); } }
[예제2] MultiComp 클래스
MultiComp 클래스를 이용해 Board 객체 정렬
Collections.sort 함수를 이용하여 객체 정렬
List< Board> resultList = new ArrayList< Board >(); resultList = db.getXXX(); // DB에서 데이터 가져오기 Collections.sort(resultList, new MultiComp());
'Language > Java' 카테고리의 다른 글
자바 커뮤니티1 - Class (0) | 2019.05.22 |
---|---|
Java 문자열 객체 (0) | 2018.08.04 |
Java 배열 선언, 초기화 (0) | 2018.08.04 |
Java 접근지정자 (Access Modifier) (0) | 2018.08.04 |
Java String Constant Pool의 이해 (0) | 2018.08.02 |