Java/JAVA 100 문제 풀이
자바 part.4 문제풀이 - 성적 오름차순 정렬하기: Arrays.sort() 메서드 활용
진이최고다
2023. 7. 28. 19:22
예제
import java.util.Arrays;
public class Algorithm {
public static void main(String[] args) {
//[1] : 배열 선언 -> 성적 배열
int[] scores = {88, 55, 39, 100, 90, 100, 98, 67};
//[2] : 성적 배열 -> 오름차순 정렬 -> Arrays.sort(배열명); -> 오름차순이 기본정렬 -> import 필요.
//클래스 메서드로써 Arrays클래스의 인스턴스 생성없이 바로 사용가능.
System.out.print("화장실(정렬) 들어가기 전 = ");
for(int i = 0; i < scores.length; i++) {
System.out.print(scores[i] + " ");
}
System.out.println();
//Arrays.sort 적용
Arrays.sort(scores);
System.out.print("화장실(정렬) 들어가기 후 = ");
for(int i = 0; i < scores.length; i++ ) {
System.out.print(scores[i] + " ");
}
System.out.println();
//[3] : 향상된 for문 사용
System.out.println("--- 향상된 for문 사용 ---");
System.out.print("화장실(정렬) 들어가기 후 = ");
for(int i : scores) {
System.out.print(i + " ");
}
}
}
화장실(정렬) 들어가기 전 = 88 55 39 100 90 100 98 67
화장실(정렬) 들어가기 후 = 39 55 67 88 90 98 100 100
--- 향상된 for문 사용 ---
화장실(정렬) 들어가기 후 = 39 55 67 88 90 98 100 100
1. 배열 선언과 초기화
- 먼저, 정수로 이루 어진 성적 배열을 선언하고 초기값을 할당한다. 배열은 중괄호 "{}" 안에 각 원소들을 큰따옴표로 구분하여 나열하였다.
- 예제에서는 "int[] scores = {88, 55, 39, 100, 90 100, 98, 67};" 와 같이 성적배열 "scores"를 선언하고 초기값을 할당하였다.
2. Arrays 클래스를 이용한 오름차순 정렬
- Arrays 클래스는 배열을 다루는데 유용한 유틸리티 메서드를 제공한다.
- Arrays.sort() 메서드를 사용하여 배열을 오름차순으로 정렬한다.
- 예제에서는 "Arrays.sort(scores);" 와 같이 scores 배열을 오름차순으로 정렬한다.
3. 정렬 이전과 이후 배열 출력
- 정렬 전, 정렬 후의 배열을 출력하여 비교한다.
- for 반복문을 사용하여 정렬 이전과 이후의 배열을 출력한다.
4. 향상된 for문 사용
- "향상된 for문"은 배열과 컬렉션을 순회하는 데 간편한 구문을 제공한다.
- "for(int i : scores)" 와 같이 배열 "scores"의 각 원소를 순회한다.
추가 심화내용
- "Arrays.sort()" 메서드를 사용한 오름차순 정렬은 기본적으로 배열의 원소들을 오름차순으로 정렬한다. 정렬은 원본 배열에 정향을 미치며, 정렬된 결과는 원본 배열에 저정된다.
- 자바에서 배열은 기본적으로 "int, float, double" 등의 기본 데이터 타입 배열과 "Object" 타입 배열로 나뉜다. 기본 데이터 타입 배열은 원소들이 값으로 저장되며, "Array.sort()" 메서드를 사용하여 오름차순 정렬된다. 하지만 "Object"타입의 배열의 경우, 원소들이 객체 참조로 저장되므로 정렬은 원소 객체들의 비교를 기반으로 이루어진다. 따라서 "Object" 타입 배열을 정렬하려면 해당 객체가 "Comparable" 인터페이스를 구현하거나 "Comparator"를 사용하여 정렬 기준을 지정해야 한다.