1. 기본형 배열의 정렬
오름차순 정렬
Arrays.sort()
int[] arr = {1, 26, 17, 25, 99, 44, 303};
Arrays.sort(arr);
System.out.println("Sorted arr[] : " + Arrays.toString(arr));
Output:
Sorted arr[] : [1, 17, 25, 26, 44, 99, 303]
내림차순 정렬
내림차순으로 정렬하려면 sort()의 인자에 추가로 Collections.reverseOrder()를 전달해야 합니다.
Integer[] arr = {1, 26, 17, 25, 99, 44, 303};
Arrays.sort(arr, Collections.reverseOrder());
System.out.println("Sorted arr[] : " + Arrays.toString(arr));
Output:
Sorted arr[] : [303, 99, 44, 26, 25, 17, 1]
int 배열, 부분 정렬
위의 예제는 배열(Array) 전체를 정렬하였습니다. 하지만, 배열의 일부분만 정렬할 수도 있습니다.
다음과 같이 sort()의 인자로 처음 index와 마지막 index를 전달하여 정렬할 범위를 지정해줘야 합니다. 아래 코드는 0과 4를 인자로 전달했는데, index 0에서 index 4를 포함하는 배열만 정렬하라는 의미입니다.
int[] arr = {1, 26, 17, 25, 99, 44, 303};
Arrays.sort(arr, 0, 4);
System.out.println("Sorted arr[] : " + Arrays.toString(arr));
Output:
Sorted arr[] : [1, 17, 25, 26, 99, 44, 303]
2. String 배열 정렬(Sorting)
String 배열도 Integer와 동일합니다.
아래처럼 구현하면, 알파벳의 아스키 값으로 비교를 하여 정렬을 합니다.
String[] arr = {"Apple", "Kiwi", "Orange", "Banana", "Watermelon", "Cherry"};
Arrays.sort(arr);
System.out.println("Sorted arr[] : " + Arrays.toString(arr));
Output:
Sorted arr[] : [Apple, Banana, Cherry, Kiwi, Orange, Watermelon]
내림차순으로 정렬하는 것도 위의 예제와 동일합니다.
String[] arr = {"Apple", "Kiwi", "Orange", "Banana", "Watermelon", "Cherry"};
Arrays.sort(arr, Collections.reverseOrder());
System.out.println("Sorted arr[] : " + Arrays.toString(arr));
Output:
Sorted arr[] : [Watermelon, Orange, Kiwi, Cherry, Banana, Apple]
3.
객체 배열 정렬(Sorting)
public static class Fruit implements Comparable<Fruit> {
private String name;
private int price;
public Fruit(String name, int price) {
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "{name: " + name + ", price: " + price + "}";
}
@Override
public int compareTo(@NotNull Fruit fruit) {
return this.price - fruit.price;
}
}
위의 클래스에서 Comparable은 자기 자신의 클래스와 인자로 전달되는 Fruit의 price를 비교합니다.
이제 다음과 같이 Fruit 배열을 sort()로 정렬할 수 있습니다.
Fruit[] arr = {
new Fruit("Apple", 100),
new Fruit("Kiwi", 500),
new Fruit("Orange", 200),
new Fruit("Banana", 50),
new Fruit("Watermelon", 880),
new Fruit("Cherry", 10)
};
Arrays.sort(arr);
System.out.println("Sorted arr[] : " + Arrays.toString(arr));
Output:
Sorted arr[] : [{name: Cherry, price: 10}, {name: Banana, price: 50}, {name: Apple, price: 100}, {name: O
'프로그래밍 언어 (プログラミング言語) > JAVA' 카테고리의 다른 글
JAVA - Stack Class (0) | 2023.01.11 |
---|---|
Comparable, Compartor 인터페이스 (0) | 2023.01.11 |
Equal(), HashCode() in JAVA (0) | 2023.01.01 |
JAVA에서의 동기화 기법(모니터 etc) (0) | 2022.12.23 |
StringBuilder의 사용 이유와 System.out.print()의 실행 속도 (0) | 2022.12.18 |