[JAVA] 객체 정렬 ( 람다, Stream )

2022. 8. 10. 17:56·개발중/Java
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
'개발중/Java' 카테고리의 다른 글
  • [Java] mysql 접속정보로 쿼리조회
  • Java에서 백분율(퍼센트) 계산하기
  • java 에서 int 를 comma(',') 삽입 후 String 으로 변환
  • LocalDate 비교 (오늘이 1일이라면, 오늘이 말일이라면) 😊
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (932) N
      • 개발중 (634) N
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (87)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18) N
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (17)
        • 기록 (1)
        • 캐글 스터디 (3)
        • R (12)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    REST API
    네트워크 관리사
    java
    git
    Git 저장소
    쿠버네티스
    redis
    리눅스 1급 요약
    네트워크 관리사 요약
    네트워크 관리사 2급 실기
    리눅스 마스터 요약
    리눅스 마스터
    파이썬
    파이썬 알고리즘
    리눅스 마스터 1급 정리
    쿠버네티스 스터디
    리눅스 마스터 1급 요약
    Spring
    네트워크 관리사 학점
    네트워크 관리사 실기
    docker
    스프링
    BackendDevelopment
    VUE
    네트워크 관리사 자격증
    네트워크 관리사 2급
    springboot
    jpa
    리눅스 마스터 1급
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
[JAVA] 객체 정렬 ( 람다, Stream )
상단으로

티스토리툴바