제네릭 메서드를 바탕으로 점수 및 단어를 정렬하는 문제입니다 이를 해결하는 다음 프로그램을 해석하세요
86 89 90 apple banana carrot
프로그램 시작
먼저, 점수 정렬 후 출력
단어 정렬 후 출력
프로그램 종료
정렬
마지막 칸에 가장 큰 값을 저장하면서 한칸씩 앞으로 영역 좁혀가기
영역의 첫번째 칸부터 인접한 두 값을 비교하면서
앞이 뒤보다 크면 두 값을 맞바꾸기하면서 뒤쪽에 큰 값을 저장
// 파일명 : ./Chapter19/GenericMethodMain.java
public class GenericMethodMain
{
// 정렬
Fb public static <T extends Comparable<T>> void sort( T[] list ) {
// 마지막 칸에 가장 큰 값을 저장하면서 한칸씩 앞으로 영역 좁혀가기
for ( int last = list.length - 1; last >= 0; last-- ) {
// 영역의 첫번째 칸부터 인접한 두 값을 비교하면서
for ( int index = 0; index < last; index++ ) {
// 앞이 뒤보다 크면 두 값을 맞바꾸기하면서 뒤쪽에 큰 값을 저장
if ( list[ index ].compareTo( list[ index + 1 ] ) > 0 ) {
T temp = list[ index ];
list[ index ] = list[ index + 1 ];
list[ index + 1 ] = temp;
}
}
}
Fe }
// 프로그램 시작
1 public static void main( String[] args ) {
// 먼저, 점수 정렬 후 출력
Integer[] scores = new Integer[]{ 90, 89, 86 };
2 sort( scores );
for( int score : scores )
System.out.print( score + " " );
3 System.out.println();
// 단어 정렬 후 출력
String[] words = new String[]{ "carrot", "banana", "apple" };
4 sort( words );
for( String word : words )
System.out.print( word + " " );
// 프로그램 종료
5 }
}
※ 실행순서 및 메모리상태는 A키(이전) 및 D키(다음)를 눌러도 확인할 수 있습니다