상세 컨텐츠

본문 제목

[객체배열] 오름차순

자바

by esoesmio 2023. 3. 24. 13:57

본문

 객체 배열 정렬 

객체로 이루어진 배열의 경우에는 객체 클래스가 Comparable인터페이스의 compareTo() 메서드를 구현하고 있어야 정렬이 됩니다. 예제는 나이별로 사람들을 정리하는 예제입니다.

import java.util.Arrays;

class People implements Comparable {

    private String name;
    private int age;
    
    public People(String name, int age){
        this.name = name;
        this.age= age;
    }

    public String print(){
        return name+"("+age+")";
    }

    @Override
    public int compareTo(People people) {
         // TODO Auto-generated method stub
         if (this.age < people.age) {
             return -1;
         } else if (this.age == people.age) {
             return 0;
         } else {
             return 1;
         }
     }
}

public class Sort{
     public static void main(String[] args)  {
         People[] arr = { new People("상현", 20)
            , new People("철수", 14)
            , new People("경완", 31)
            , new People("대호", 40)
            , new People("지운", 24) 
        };
		
        Arrays.sort(arr); //오름차순 정렬
		
        for (People i : arr) { //오름차순 출력
            System.out.print("["+i.print()+"]");
        }
		
        Arrays.sort(arr,Collections.reverseOrder()); //내림차순 정렬
        System.out.println();
		
        for (People i : arr) { //내림차순 출력
            System.out.print("["+i.print()+"]");
        }
    }
}

 

'자바' 카테고리의 다른 글

[스레드 동기화] 이상한 동기화문제  (0) 2023.04.03
스트림 외울거  (0) 2023.03.30
[정규식] _포함 안포함 비교  (1) 2023.03.24
[인터페이스,추상클래스] 비교글  (0) 2023.03.24
[재귀함수]  (1) 2023.03.24

관련글 더보기

댓글 영역