자바에서 객체를 특정 기준으로 정렬하는 경우 Comparable이나 Comparator 인터페이스를 사용



(예제)Comparator 인터페이스를 이용한 다중 정렬

  1. Board 객체를 생성
  2. Comparator 인터페이스를 구현한 MultiComp 클래스 정의
  3. MultiComp 클래스를 이용해 Board 객체 정렬

조건
  • cnt 내림차순
  • cnt 가 같은 경우 date 의 최신순서로 정렬 (내림차순)


Board 객체를 생성

  • 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

+ Recent posts