danuri
오늘의 기록
danuri
전체 방문자
오늘
어제
  • 오늘의 기록 (307)
    • java (150)
      • java (33)
      • spring (63)
      • jpa (36)
      • querydsl (7)
      • intelliJ (9)
    • kotlin (8)
    • python (24)
      • python (10)
      • data analysis (13)
      • crawling (1)
    • ddd (2)
    • chatgpt (2)
    • algorithm (33)
      • theory (9)
      • problems (23)
    • http (8)
    • git (8)
    • database (5)
    • aws (12)
    • devops (10)
      • docker (6)
      • cicd (4)
    • book (44)
      • clean code (9)
      • 도메인 주도 개발 시작하기 (10)
      • 자바 최적화 (11)
      • 마이크로서비스 패턴 (0)
      • 스프링으로 시작하는 리액티브 프로그래밍 (14)
    • tistory (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • POSTGIS
  • Thymeleaf
  • reactive
  • Spring
  • S3
  • docker
  • Kotlin
  • 마이크로서비스패턴
  • PostgreSQL
  • 도메인 주도 설계
  • Jackson
  • gitlab
  • 트랜잭션
  • AWS
  • Database
  • 자바 최적화
  • Saving Plans
  • JPA
  • 등가속도 운동
  • Security
  • Bitmask
  • SWAGGER
  • CICD
  • ChatGPT
  • mockito
  • Java
  • RDS
  • connection
  • nuribank
  • DDD

최근 댓글

최근 글

hELLO · Designed By 정상우.
danuri

오늘의 기록

java/java

[Java] 다중 조건 정렬

2021. 8. 29. 05:41

정렬할 객체 클래스

 

@Getter
@AllArgsConstructor
class Student {
    int num;
    String name;
    String address;
}

 

getter 메소드를 만들어서 그 값을 기준으로 정렬한다. 추가 기준은 thenComparing 메소드를 사용한다.

기준이 복잡하면 Comparator 객체를 하나 만들어서 인자로 던져주면 된다. 깔끔한 코드가 만들어진다.

List<Student> list = new ArrayList<>();
Student s1 = new Student(11001244, "아무개", "서울시 금천구");
Student s2 = new Student(25109435, "김김김", "서울시 중랑구");
Student s3 = new Student(11005338, "사이다", "서울시 은평구");
list.add(s1);
list.add(s2);
list.add(s3);

//모두 오름차순 정렬
list.sort(Comparator.comparing(Student::getNum).thenComparing(Student::getName)
        .thenComparing(Student::getAddress));
 
//이름만 내림차순         
Comparator<Student> reverse = Comparator.comparing(Student::getName).reversed();
list.sort(Comparator.comparing(Student::getNum).thenComparing(reverse)
        .thenComparing(Student::getAddress));

 

출처: https://chickenpaella.tistory.com/24

'java > java' 카테고리의 다른 글

[Java] I/O  (1) 2021.09.08
[Java] 애노테이션  (1) 2021.09.05
[Java] Enum  (1) 2021.08.27
[Java] 멀티쓰레드 프로그래밍  (1) 2021.08.23
[Java] 예외 처리  (1) 2021.08.12
    'java/java' 카테고리의 다른 글
    • [Java] I/O
    • [Java] 애노테이션
    • [Java] Enum
    • [Java] 멀티쓰레드 프로그래밍
    danuri
    danuri
    IT 관련 정보(컴퓨터 지식, 개발)를 꾸준히 기록하는 블로그입니다.

    티스토리툴바