문제
Generic을 이용하여 String을 정렬해라.
코드
import java.util.*;
public class StringBubbleSort {
// interface인 Comparable을 extends 하는 이유: T는 Comparable인 타입이어야 한다!!
// 그래서 Comparable을 extends(확장)한 타입이다 라는 의미다!
public static <T extends Comparable<T>> void bubbleSort(T[] array) {
int n = array.length;
for (int i=0; i<n-1; i++) { // 문자열의 마지막은 '\n'이기 때문에
for (int j=0; j<n-1-i; j++) {
if (array[j].compareTo(array[j+1]) > 0) {
T temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
public static void main(String[] args) {
Integer[] integerList = {1, 10, 7, 2, 5, 4, 9, 8, 3, 6};
String[] stringList = {"James", "Robert", "Jone", "Michael", "William", "Noah", "Liam", "Jacob"};
System.out.println("정렬 전: " + Arrays.toString(integerList));
bubbleSort(integerList);
System.out.println("정렬 후: " + Arrays.toString(integerList));
System.out.println("정렬 전: " + Arrays.toString(stringList));
bubbleSort(stringList);
System.out.println("정렬 후: " + Arrays.toString(stringList));
}
}
실행 결과
정렬 전: [1, 10, 7, 2, 5, 4, 9, 8, 3, 6]
정렬 후: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
정렬 전: [James, Robert, Jone, Michael, William, Noah, Liam, Jacob]
정렬 후: [Jacob, James, Jone, Liam, Michael, Noah, Robert, William]
2024.08.22 - [자료구조] - [자료구조] 버블 정렬 (Bubble Sort)
[자료구조] 버블 정렬 (Bubble Sort)
Bubble Sort(버블 정렬)인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환하는 과정을 인덱스 처음부터 끝까지 진행한다.한 번의 정렬을 거치면 오른쪽 끝부터 정렬이
lightningtech.tistory.com
2024.08.31 - [Java] - [Java] 11. Generics
[Java] 11. Generics
Chapter 1: Generics 개요Generics 개요강력한 타입 검사타입 변환 감소알고리즘 일반화 Chapter 2: Generic 타입Generic 타입 선언Generic 타입 생성자Generic 객체 생성Generic 메소드 Chapter 3: Generic 메소드 선언타
lightningtech.tistory.com
출처: https://github.com/gikpreet/class-programming_with_java/tree/master
GitHub - gikpreet/class-programming_with_java
Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.
github.com
'Java > Java 연습 문제' 카테고리의 다른 글
[Java 연습문제] Iterable과 Comparable * - Book 예제 (3) | 2024.09.08 |
---|---|
[Java 연습 문제] 학생 관리 시스템 * (0) | 2024.09.01 |
[Java 연습 문제] 상속을 사용하여 인터페이스 구현 (0) | 2024.08.31 |
[Java 연습 문제] 텍스트 파일의 소문자 복사본 생성 (0) | 2024.08.30 |
[Java 연습 문제] Text file 입출력 (0) | 2024.08.29 |