자바(JAVA)
자바(Java) 객체 배열 정렬하기
녹두장군1
2024. 2. 28. 22:51
반응형
“객체 배열 정렬”은 사용자가 정의한 클래스의 객체로 이루어진 배열의 요소들을 기준에 따라 오름차순이나 내림차순으로 정렬하는 작업을 말합니다. 정렬 기준은 주로 객체의 특정 속성이나 비교 메서드를 통해 결정됩니다.

| ◎ 구문 |
// 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)
반응형