728x90
반응형
람다 함수로 대체
Comparator 객체는 메서드가 하나 뿐인 함수형 인터페이스를 구현하기 때문에 람다 함수로 대체가 가능합니다.
Collections.sort(players, (a, b) -> b.getScore() - a.getScore());
System.out.println(players);
// [Player(name=Chloe, score=1090), Player(name=Eric, score=1018), Player(name=Bob, score=982), Player(name=Dale, score=982), Player(name=Alice, score=899)]
Stream 으로 정렬
Stream 클래스의 sorted() 메서드도 Comparator 객체를 인자로 받아 정렬을 해줍니다.
스트림을 사용하면 위에서 살펴본 배열과 리스트의 정렬과 달리 기존 객체의 순서를 변경하지 않고, 새롭게 정렬된 객체를 생성하고자 할 때 사용됩니다.
List<Player> sortedPlayers = players.stream()
.sorted((a, b) -> b.getScore() - a.getScore())
.collect(Collectors.toList());
System.out.println(sortedPlayers);
// [Player(name=Chloe, score=1090), Player(name=Eric, score=1018), Player(name=Bob, score=982), Player(name=Dale, score=982), Player(name=Alice, score=899)]
728x90
반응형
'개발중 > Java' 카테고리의 다른 글
[Java] mysql 접속정보로 쿼리조회 (0) | 2022.09.20 |
---|---|
Java에서 백분율(퍼센트) 계산하기 (0) | 2022.08.11 |
java 에서 int 를 comma(',') 삽입 후 String 으로 변환 (0) | 2022.06.27 |
LocalDate 비교 (오늘이 1일이라면, 오늘이 말일이라면) 😊 (0) | 2022.03.01 |
🔍🔊 [JAVA] String을 Boolean으로 변환하기 🔊🔍 (0) | 2022.02.25 |