평소 int 배열을 자주 사용하는데 오름차순 정렬은 쉽지만, 항상 내림차순 정렬이 기억이 안나더라구요.
그래서 오늘은 int 배열과 List의 오름차순, 내림차순 정렬에 대해 알아보겠습니다.
728x90
int 배열
int 배열을 정렬할 때는 java.util.Arrays를 이용합니다.
1) 오름차순 정렬
import java.util.Arrays;
public class primitiveSort {
public static void main(String[] args) {
int[] arr = {25, 4, 7, 1};
//오름차순 정렬
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
2) 내림차순 정렬
int 배열의 내림차순 정렬은 바로 Arrays.sort(arr)를 사용해서 정렬할 수 없습니다.
우선 원시 타입의 배열을 래퍼 클래스로 만들어 주고, sort의 두 번째 인자인 Comparator 부분에 Collections.reverseOrder() 를 사용해주면 됩니다.
import java.util.Arrays;
import java.util.Collections;
public class primitiveReverseSort {
public static void main(String[] args) {
int[] arr = {25, 4, 7, 1};
//내림차순 정렬
Integer[] wrapperArr =Arrays.stream(arr).boxed().toArray(Integer[]::new);
Arrays.sort(wrapperArr, Collections.reverseOrder());
System.out.println(Arrays.toString(arr));
}
}
3) int 배열 일부분만 정렬
다음과 같이 인덱스 범위를 지정해주면 해당 범위만 오름차순으로 정렬된 것을 볼 수 있습니다.
import java.util.Arrays;
public class primitiveSort2 {
public static void main(String[] args) {
int[] arr = {25, 4, 7, 1};
// 일부분 오름차순 정렬
Arrays.sort(arr, 1, 2);
System.out.println(Arrays.toString(arr));
}
}
4) String은 원시 타입이 아니다!
String은 원시 타입이 아니기 때문에 wrapper 클래스로 감쌀 필요가 없습니다.
import java.util.Arrays;
import java.util.Collections;
public class stringSort {
public static void main(String[] args) {
String[] strings = {"melon", "apple", "banana"};
//오름차순 정렬
System.out.print("오름차순 정렬: ");
Arrays.sort(strings);
System.out.println(Arrays.toString(strings));
//내림차순 정렬
System.out.print("\n내림차순 정렬: ");
Arrays.sort(strings, Collections.reverseOrder());
System.out.println(Arrays.toString(strings));
}
}
List
리스트의 정렬할 때는 java.util.Collections를 이용합니다.
1) 오름차순 정렬
List<Stirng>은 알파벳 사전 순서대로 정렬됩니다.
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class listSort {
public static void main(String[] args) {
List<String> strings = new ArrayList<>();
strings.add("banana");
strings.add("apple");
strings.add("melon");
//오름차순 정렬
Collections.sort(strings);
for (String string : strings) {
System.out.print(string + " ");
}
}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class listSort2 {
public static void main(String[] args) {
List<Integer> ints = new ArrayList<>();
ints.add(43);
ints.add(0);
ints.add(20);
// 오름차순 정렬
Collections.sort(ints);
for (Integer i : ints) {
System.out.print(i + " ");
}
}
}
2) 내림차순 정렬
내림차순 정렬은 List의 sort 메서드를 사용하고 Comparator 인자에 Collections.reverserOrder() 를 사용해주면 됩니다.
객체명.sort(Collections.reverserOrder()) 사용해도 됩니다.
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class listReverseSort {
public static void main(String[] args) {
List<String> strings = new ArrayList<>();
strings.add("banana");
strings.add("apple");
strings.add("melon");
//내림차순 정렬
strings.sort(Collections.reverseOrder());
for (String string : strings) {
System.out.print(string + " ");
}
System.out.println("");
List<Integer> ints = new ArrayList<>();
ints.add(43);
ints.add(0);
ints.add(20);
//내림차순 정렬
Collections.sort(ints, Collections.reverseOrder());
for (Integer i : ints) {
System.out.print(i + " ");
}
}
}
728x90
'Language > Java' 카테고리의 다른 글
[Java] Dynamic Programming, DP에 대해 알아보자 (0) | 2023.03.11 |
---|---|
[Java] 스트림이란? 스트림stream 사용하기 (0) | 2023.03.11 |
[Java] String 배열 대소문자 구분 없이 오름차순/내림차순 정렬하기 (0) | 2023.03.10 |
[Java] 객체 배열/리스트 오름차순,내림차순 정렬과 다중 조건 정렬 (0) | 2023.03.09 |
[Java] Collection에 저장된 요소 출력하기 (Iterator, ListIterator) (0) | 2023.03.07 |