배열 오름차순, 내림차순 정렬하기
2022. 4. 25. 23:43ㆍJava/[도서] 자바의 정석
알고리즘 문제를 풀 때, 입력을 받은 후 정렬하는 경우가 많습니다.
저의 경우 오름차순은 여러 번 사용했던 터라 메서드를 알고 있었지만, 내림차순을 할 때는 잠시 망설였던 경험이 있습니다. 독자분들은 바로바로 사용하실 수 있게 이번 기회에 암기하고 가시면 좋을 것 같습니다.
공부 후 관련 알고리즘 문제까지 푸시는 것을 추천합니다.
배열의 오름차순 정렬 Arrays.sort( )
기본 타입 배열, String배열에 모두 사용 가능합니다.
기본 타입 배열
import java.util.Arrays;
public class Array {
public static void main(String[] args) {
int[] arr = {5,100,20,33,66,82,200};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
결과
[5, 20, 33, 66, 82, 100, 200]
String 배열
import java.util.Arrays;
public class Array {
public static void main(String[] args) {
String[] arr = {"dog", "sheep", "wolf", "hyena", "deer", "dolphin"};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
결과
[deer, dog, dolphin, hyena, sheep, wolf]
배열의 내림차순 정렬
Collections클래스의 reverseOrder( ) 함수를 사용합니다.
기본 타입 배열의 경우 래퍼 클래스로 만들어서 Comparator를 두 번째 인자에 넣어주어야 합니다.
기본 타입 배열
import java.util.Arrays;
import java.util.Collections;
public class Array {
public static void main(String[] args) {
Integer[] arr = {5,100,20,33,66,82,200};
Arrays.sort(arr, Collections.reverseOrder());
System.out.println(Arrays.toString(arr));
}
}
결과
[200, 100, 82, 66, 33, 20, 5]
String배열
import java.util.Arrays;
import java.util.Collections;
public class Array {
public static void main(String[] args) {
String[] arr = {"dog", "sheep", "wolf", "hyena", "deer", "dolphin"};
Arrays.sort(arr, Collections.reverseOrder());
System.out.println(Arrays.toString(arr));
}
}
결과
[wolf, sheep, hyena, dolphin, dog, deer]
배열 일부분 정렬
Arrays.sort(배열이름, 시작 index, 끝 index )를 사용합니다.
시작은 포함하고 끝은 포함하지 않습니다.
import java.util.Arrays;
public class Array {
public static void main(String[] args) {
int[] arr = {5,100,20,33,66,82,200};
Arrays.sort(arr,1,4); // 1 2 3
System.out.println(Arrays.toString(arr));
}
}
결과
[5, 20, 33, 100, 66, 82, 200]
'Java > [도서] 자바의 정석' 카테고리의 다른 글
StringBuffer클래스와 StringBuilder클래스 (0) | 2022.04.29 |
---|---|
배열의 얕은 복사, 깊은 복사 (0) | 2022.04.27 |
형변환 (문자형↔정수형↔실수형) (0) | 2022.04.23 |
String 클래스 메서드 (0) | 2022.04.21 |
💡 10진수 ↔ 2진수, 8진수, 16진수 변환 방법 (0) | 2022.04.20 |