JAVA/JAVA_Lang
배열 오름차순, 내림차순 정렬
오늘의 진
2022. 8. 21. 16:55
배열은 기본적으로 Arrays.sort() 를 이용해서 정렬한다.
기본적으로 오름 차순 정렬이다.
내림 차순 정렬을 하기 위해서는 두번째 인자로 Collections.reverOrer() 을 사용한다.
예시
// 1차원 문자열 배열 정렬
public static void StringArray1D () {
String[] strArray = {"aa", "ac", "ab", "ad"};
System.out.println("----String 배열 오름차순----");
Arrays.sort(strArray);
for (String i : strArray) {
System.out.print(i + " ");
}
System.out.println("\n----String 배열 역순----");
Arrays.sort(strArray, Comparator.reverseOrder()); // 내림차순
for (String i : strArray) {
System.out.print(i + " ");
}
}
Collections는 기본적으로 Object를 상송한 클래서에 대하여 사용가능한 인터페이스 이므로
String, Integer, Double 같은 경우는 Collections.reverseOrder() 사용이 가능하다.
기본타입인 int, double, char, float등은 사용불가능 하다.
이들은 Wrapper클래스로 박싱해주어야 역순 정렬이 가능하다.
Int형에서의 오름차순 내림차순 정렬
package ja08;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
public class SortTest {
public static void main(String[] args) {
int[] arr = { 1, 7, 8, 0, 9, 4, 3, 2 };
Arrays.sort(arr);
System.out.println("오름차순 : ");
for (int i : arr) {
System.out.print(i + " ");
}
// primitive Type를 wrapper클래스로 박싱해주어야 reverseOrder사용가능
Integer[] tmp = Arrays.stream(arr).boxed().toArray(Integer[]::new);
Arrays.sort(tmp, Comparator.reverseOrder()); // 내림차순
System.out.println("\n내림 차순 : ");
for (int i : tmp) {
System.out.print(i + " ");
}
}
}