개발

[JAVA] 클래스 정렬(Sort) 하는법

딱딱키보드 2023. 5. 13. 19:35
728x90
SMALL

Java에서 클래스를 정렬하기 위해서는 java.util.Collections 클래스의 sort() 메소드를 사용합니다. sort() 메소드는 인자로 List를 받아서 해당 리스트를 정렬합니다. 정렬할 클래스는 Comparable 인터페이스를 구현해야 하며, Comparable 인터페이스의 compareTo() 메소드를 오버라이드해서 정렬 기준을 정의합니다.

 

다음은 Student 클래스를 이름(name)을 기준으로 정렬하는 예제입니다.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SortExample {
    public static void main(String[] args) {
        List<Student> studentList = new ArrayList<>();
        studentList.add(new Student("Kim", 90));
        studentList.add(new Student("Lee", 80));
        studentList.add(new Student("Park", 70));
        studentList.add(new Student("Choi", 60));

        // 이름(name)을 기준으로 오름차순 정렬
        Collections.sort(studentList);

        for (Student student : studentList) {
            System.out.println(student);
        }
    }
}

class Student implements Comparable<Student> {
    private String name;
    private int score;

    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public int getScore() {
        return score;
    }

    @Override
    public int compareTo(Student o) {
        return this.name.compareTo(o.getName());
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", score=" + score +
                '}';
    }
}

위 예제에서 Student 클래스는 Comparable 인터페이스를 구현하고 compareTo() 메소드를 오버라이드해서 이름(name)을 기준으로 정렬합니다. Collections.sort() 메소드를 호출하면 List의 요소가 해당 클래스의 compareTo() 메소드에 의해 정렬됩니다. 결과적으로 Kim, Lee, Park, Choi 순으로 정렬되어 출력됩니다.

728x90
LIST