728x90
    
    
  반응형
    
    
    
  
▷ Example
*개선 2024-11-26
public static void testSort() {
    // 테스트 데이터 생성
    var list = new ArrayList<>(List.of(
        new DistVO("짱구분식", 11),
        new DistVO("홍길동분식", 5),
        new DistVO("김길동분식", 5),
        new DistVO("십이분식", 34),
        new DistVO("저먼분식", 94)
    ));
    // 정렬 전 출력
    System.out.println("정렬 전 ====================");
    list.forEach(System.out::println);
    // 거리순으로 정렬(오름차순 ASC)
    list.sort(Comparator.comparingInt(DistVO::getDist));
    // 정렬 후 출력 (오름차순)
    System.out.println("오름차순 정렬 후 ====================");
    list.forEach(System.out::println);
    // 거리순으로 정렬(내림차순 DESC)
    list.sort(Comparator.comparingInt(DistVO::getDist).reversed());
    // 정렬 후 출력 (내림차순)
    System.out.println("내림차순 정렬 후 ====================");
    list.forEach(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=저먼분식)
내림차순 정렬 후 ====================
DistVO(dist=94, name=저먼분식)
DistVO(dist=34, name=십이분식)
DistVO(dist=11, name=짱구분식)
DistVO(dist=5, name=홍길동분식)
DistVO(dist=5, name=김길동분식)*개선 전
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 | 
 
 
 
댓글