-
Java - Comparator 예제 (lambda 표현식)Java 2023. 1. 20. 18:03반응형
자바에서 리스트를 sort할때 Comparator를 사용합니다.
자주 쓰는 Comparator를 정의해 놓으면 재사용이 가능합니다.
Comparator를 만드는 예제에 대해서 알아보겠습니다.
1. Comparator 예제
public static Comparator<String> getStringComparator() { return new Comparator<String>() { @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } }; }
보통은 이런식으로 Comparator를 만들어 줍니다.
compare 함수를 override해서 anonymous 클래스를 return해줍니다.
이렇게 함수를 만들면 IntelliJ에서 이런 warning을 띄웁니다.
Anonymous new Comparator<String>() can be replaced with lambda
Anonymous 클래스를 lambda로 바꿀 수 있으니 바꾸는 게 좋겠다고 합니다.
그래서 람다 표현식으로 바꿔 보았습니다.
2. Comparator lambda 표현식
public static Comparator<String> getStringComparator() { return (o1, o2) -> o1.compareTo(o2); }
람다를 사용하니까 이렇게 한줄로 간단하게 표현이 가능합니다.
3. Comparator 이용해서 정렬하기
List<String> list = Arrays.asList("a", "b", "c"); List<String> result = list.stream() .sorted(getStringComparator()) .collect(Collectors.toList()));
.sorted() 함수에 정의한 Comparator를 넣어주면 됩니다.
반응형'Java' 카테고리의 다른 글
Java - Enum for loop, forEach(), iterator (0) 2023.03.04 Java - String.replace(), String.replaceAll() 차이 (0) 2023.03.03 Java - LocalDateTime 시간 설정 (0) 2023.01.12 Java - List 중간 데이터 삭제하는 법 (subList) (0) 2022.12.23 Java - Long.valueOf() 변환시 null 처리하는 방법 (0) 2022.09.30