import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.IntStream;
public class Sample {
public static void main(String[] args) {
// 오름차순 정렬
int[] array = {5, 1, 3, 2, 4};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
// 내림차순 정렬 (for문 활용)
int[] array2 = {5, 1, 3, 2, 4};
Arrays.sort(array2);
for (int i = 0; i < array2.length / 2; i++) {
int temp = array2[i];
array2[i] = array2[array2.length - 1 - i];
array2[array2.length - 1 - i] = temp;
}
System.out.println(Arrays.toString(array2));
// Stream 활용
int[] sortedArray = IntStream.of(array)
.boxed()
.sorted(Comparator.reverseOrder())
.mapToInt(Integer::intValue)
.toArray();
System.out.println(Arrays.toString(sortedArray));
}
}
자바 int[] 배열의 경우에 오름차순은 Arrays.sort(배열명); 를 사용해서 간단히 해결 가능하지만, 내림차순의 경우에는 위 메소드가 먹히지 않기 때문에 for 문을 사용해주거나 혹은 Stream을 활용해야 하는데
먼저 for 문을 활용하는 경우에는 오름차순으로 정렬한 뒤 for문을 돌리되 절반까지만 돌리고 배열 앞의 값과 뒤의 값을 바꾸는 식으로 바꿔주면 절반까지만 돌려도 모든 값을 뒤집어서 내림차순으로 만들어 줄 수 있고
Stream을 사용하면 내림차순 정렬을 해준 뒤 int[] 배열로 변환해서 가져오는 식으로 간단하게 해결할 수 있다.
Leave a Reply