728x90
반응형
Collectrions.sort로 간단하게 해결
*정렬 시 사용 할 Comparator Override
*아래 더 간단한 로직 참고
▷ Example
- 나와 가장 가까운 분식집 순으로 정렬
public static void testSort() {
// 테스트 데이터 생성
List<DistVO> list = new ArrayList<DistVO>();
DistVO vo;
vo = new DistVO();
vo.setName("짱구분식");
vo.setDist(11);
list.add(vo);
vo = new DistVO();
vo.setName("홍길동분식");
vo.setDist(5);
list.add(vo);
vo = new DistVO();
vo.setName("김길동분식");
vo.setDist(5);
list.add(vo);
vo = new DistVO();
vo.setName("십이분식");
vo.setDist(34);
list.add(vo);
vo = new DistVO();
vo.setName("저먼분식");
vo.setDist(94);
list.add(vo);
// 정렬 전 출력
System.out.println("정렬 전 ====================");
for(DistVO data : list){
System.out.println(data);
}
System.out.println("정렬 전 ====================");
// 거리순으로 정렬(가까운 순 오름차순 ASC)
Comparator<DistVO> cp = new Comparator<DistVO>() {
@Override
public int compare(DistVO data1, DistVO data2){
int a = data1.getDist();
int b = data2.getDist();
/*
[내림차순 DESC] a > b = -1
DistVO(dist=94, name=저먼분식)
DistVO(dist=34, name=십이분식)
DistVO(dist=11, name=짱구분식)
DistVO(dist=5, name=홍길동분식)
DistVO(dist=5, name=김길동분식)
[오름차순 ASC] a > b = 1
DistVO(dist=5, name=김길동분식)
DistVO(dist=5, name=홍길동분식)
DistVO(dist=11, name=짱구분식)
DistVO(dist=34, name=십이분식)
DistVO(dist=94, name=저먼분식)
*/
if(a > b) {
return 1;
} else {
return -1;
}
}
};
// 정렬
Collections.sort(list, cp);
// 정렬 후 출력
System.out.println("정렬 후 ====================");
for(DistVO data : list){
System.out.println(data);
}
System.out.println("정렬 후 ====================");
}
/**
결과 :
정렬 전 ====================
DistVO(dist=11, name=짱구분식)
DistVO(dist=5, name=홍길동분식)
DistVO(dist=5, name=김길동분식)
DistVO(dist=34, name=십이분식)
DistVO(dist=94, name=저먼분식)
정렬 전 ====================
정렬 후 ====================
DistVO(dist=5, name=김길동분식)
DistVO(dist=5, name=홍길동분식)
DistVO(dist=11, name=짱구분식)
DistVO(dist=34, name=십이분식)
DistVO(dist=94, name=저먼분식)
정렬 후 ====================
*/
▷ 관련 글
728x90
728x90
'▶ Back-End > Java' 카테고리의 다른 글
문자열 n번째 이후 마스킹 처리 (0) | 2021.04.22 |
---|---|
두 지점간의 거리 계산 (0) | 2021.04.16 |
숫자 천 단위 콤마 추가 (0) | 2021.03.05 |
문자열에 가변적인 특정 문자열을 원하는 위치에 추가 (0) | 2021.03.05 |
JSON Unrecognized field 해결방법(@JsonIgnoreProperties) (0) | 2021.03.03 |
댓글