Please Enable JavaScript!
Gon[ Enable JavaScript ]

자바(Java) 객체 배열 정렬하기

자바(JAVA)
반응형

객체 배열 정렬”은 사용자가 정의한 클래스의 객체로 이루어진 배열의 요소들을 기준에 따라 오름차순이나 내림차순으로 정렬하는 작업을 말합니다. 정렬 기준은 주로 객체의 특정 속성이나 비교 메서드를 통해 결정됩니다.

 


  

구문

 

// Arrays 클래스의 sort 메서드를 사용한 오름차순 정렬
Arrays.sort(array);
 
// Arrays 클래스의 sort 메서드를 사용한 내림차순 정렬
Arrays.sort(array, Comparator.reverseOrder());

 

 

예제 1: 객체 배열 오름차순 정렬

 

이 예제에서는 “Comparable” 인터페이스를 구현하여 나이를 기준으로 오름차순 정렬한 “Person” 클래스를 정의했습니다. “Arrays.sort()” 메서드를 사용하여 객체 배열을 정렬하고, 결과를 출력했습니다.

 

import java.util.Arrays;
 
public class Person implements Comparable<Person> {
    private String name;
    private int age;
 
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    // 나이를 기준으로 오름차순 정렬
    @Override
    public int compareTo(Person other) {
        return Integer.compare(this.age, other.age);
    }
 
    public String toString() {
        return name + " (" + age + " years old)";
    }
 
    public static void main(String[] args) {
        // 객체 배열 선언 및 초기화
        Person[] people = {
            new Person("Alice", 25),
            new Person("Bob", 30),
            new Person("Charlie", 22),
            new Person("David", 28)
        };
 
        // 오름차순 정렬
        Arrays.sort(people);
 
        // 결과 출력
        System.out.println("나이로 오름차순 정렬 결과:");
        for (Person person : people) {
            System.out.println(person);
        }
    }
}
 
[출력]
나이로 오름차순 정렬 결과:
Charlie (22 years old)
Alice (25 years old)
David (28 years old)
Bob (30 years old)

 

 

예제 2: 객체 배열 내림차순 정렬

 

이 예제에서는 “Comparable” 인터페이스를 구현하여 나이를 기준으로 오름차순 정렬한 “Person” 클래스를 정의했습니다. “Arrays.sort()” 메서드를 사용하여 객체 배열을 내림차순으로 정렬하고, 결과를 출력했습니다.

 

import java.util.Arrays;
import java.util.Comparator;
 
public class Person implements Comparable<Person> {
    private String name;
    private int age;
 
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    // 나이를 기준으로 오름차순 정렬
    @Override
    public int compareTo(Person other) {
        return Integer.compare(this.age, other.age);
    }
 
    public String toString() {
        return name + " (" + age + " years old)";
    }
 
    public static void main(String[] args) {
        // 객체 배열 선언 및 초기화
        Person[] people = {
            new Person("Alice", 25),
            new Person("Bob", 30),
            new Person("Charlie", 22),
            new Person("David", 28)
        };
 
        // 내림차순 정렬
        Arrays.sort(people, Comparator.reverseOrder());
 
        // 결과 출력
        System.out.println("나이로 내림차순 정렬 결과:");
        
        for (Person person : people) {
            System.out.println(person);
        }
    }
}
 
[출력]
나이로 내림차순 정렬 결과:
Bob (30 years old)
David (28 years old)
Alice (25 years old)
Charlie (22 years old)

 

반응형
Posted by 녹두장군1
,