반응형
1. Collections.sort
public static void sort(List<T> list)
public static void sort(List<T> list, Comparator<? super T> c)
List를 받아서 정렬한다.
Comparator 지정할 수 있다. Comparator는 Lambda로도 표현이 가능하며, 간단한 비교 시 편리하다.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ListSort {
public static void main(String[] args) {
List<Integer> intList = new ArrayList<>();
setList(intList);
Collections.sort(intList);
// Collections.sort(intList, Comparator.naturalOrder()); //똑같음.
System.out.println("Collections : 기본");
System.out.println(intList);
setList(intList);
Collections.sort(intList, (i1, i2) -> i1 - i2);
System.out.println("Collections 람다 : 오름차순.");
System.out.println(intList);
setList(intList);
Collections.sort(intList, (i1, i2) -> i2 - i1);
System.out.println("Collections 람다 : 내림차순");
System.out.println(intList);
}
public static void setList(List<Integer> list) {
list.clear();
list.add(5);
list.add(4);
list.add(1);
list.add(2);
list.add(3);
}
}
2. List.sort()
default void sort(Comparator<? super E> c)
java 8이후부터 추가됨.
마찬가지로 Compartor를 Lambda로 표현 가능하다.
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ListSort {
public static void main(String[] args) {
List<Integer> intList = new ArrayList<>();
setList(intList);
intList.sort(Comparator.naturalOrder());
System.out.println("natural Order");
System.out.println(intList);
setList(intList);
intList.sort((i1, i2) -> i1 - i2); // 오름차순.
System.out.println("Lamda로 오름차순");
System.out.println(intList);
setList(intList);
intList.sort((i1, i2) -> i2 - i1); // 내림차순
System.out.println("Lamda로 내림차순");
System.out.println(intList);
}
public static void setList(List<Integer> list) {
list.clear();
list.add(5);
list.add(4);
list.add(1);
list.add(2);
list.add(3);
}
}
결과를 찍어보면 다음과 같다.
natural Order
[1, 2, 3, 4, 5]
Lamda로 오름차순
[1, 2, 3, 4, 5]
Lamda로 내림차순
[5, 4, 3, 2, 1]
Collections : 기본
[1, 2, 3, 4, 5]
Collections 람다 : 오름차순.
[1, 2, 3, 4, 5]
Collections 람다 : 내림차순
[5, 4, 3, 2, 1]
반응형
'Java' 카테고리의 다른 글
[Java] 소스코드 탐험 - 2. ArrayList(feat. AbstractList) (0) | 2023.07.23 |
---|---|
[Java] 소스코드 탐험- Iterator (0) | 2023.07.23 |
[Java] 스트림 - Stream : 효율적인 데이터 다루기! (0) | 2022.09.18 |
[Java] Optional<T>, Optional 타입 : 래퍼 클래스, 코드의 복잡성을 낮추다. (0) | 2022.09.04 |
[Java] Wrapper 클래스 : 기본 타입의 데이터를 객체로 취급하다.( 오토박싱, 오토언박싱) (0) | 2022.09.03 |
댓글