[Java] 2차원 배열 정렬하기(Comparator, Lamda)

2022. 2. 14. 20:01·Programming/Java Spring
728x90
반응형

이중 배열을 정렬하고 싶은 경우 Comparator를 쓰거나 람다식을 쓰면 됩니다.

예를 들어 

int[][] arrays = { { 0, 3 }, { 2, 6 }, { 1, 9 }, { 1, 8 } };

위의 이중 배열의 순서를 아래와 괕이 변경하는 방법입니다.

{ { 0, 3 }, { 1, 8 }  { 1, 9 },  { 2, 6 } }

 

먼저 Comparator로 구현하는 방법입니다.

import java.util.Arrays;
import java.util.Comparator;

int[][] arrays = { { 0, 3 }, { 2, 6 }, { 1, 9 }, { 1, 8 } };

Arrays.sort(arrays, new Comparator<int[]>() {
  @Override
  public int compare(int[] o1, int[] o2) {
    if (o1[0] == o2[0])
      return o1[1] - o2[1];
    else
      return o1[0] - o2[0];
  }
});

 

다음은 람다식으로 구현하는 방법입니다.

import java.util.Arrays;

int[][] arrays = { { 0, 3 }, { 2, 6 }, { 1, 9 }, { 1, 8 } };

Arrays.sort(arrays, (o1, o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0]);

 

둘 다 결과적으로는 같은 방법이긴 하지만 아무래도 람다식을 이용하면 조금 더 코드가 간결해집니다.

728x90
반응형
저작자표시 (새창열림)

'Programming > Java Spring' 카테고리의 다른 글

Java Map의 초기용량을 설정해야 하는 이유  (0) 2023.03.01
비주얼스튜디오 코드에서 Java Compile 하는 방법  (0) 2022.08.11
[Java] Integer List int 배열로 변환하는 방법  (0) 2022.01.25
[Java] Java 8 LocalDateTime 직렬화 역직렬화 오류 해결 방법  (0) 2021.07.24
[Java] HashSet 사용 방법 및 개념  (0) 2021.06.28
'Programming/Java Spring' 카테고리의 다른 글
  • Java Map의 초기용량을 설정해야 하는 이유
  • 비주얼스튜디오 코드에서 Java Compile 하는 방법
  • [Java] Integer List int 배열로 변환하는 방법
  • [Java] Java 8 LocalDateTime 직렬화 역직렬화 오류 해결 방법
이프로그
이프로그
리뷰, 개발, 일상을 기록하는 블로그
    반응형
  • 이프로그
    이프로그의 IT이야기
    이프로그
  • 전체
    오늘
    어제
    • 분류 전체보기 (158)
      • Programming (111)
        • C# WPF (11)
        • Java Spring (16)
        • JavaScript & TypeScript (5)
        • Git (9)
        • Database (5)
        • Etc (42)
      • 생활상식 (24)
      • 리뷰 (8)
      • 주식 (12)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      이슈 트래킹
      투자전략
      데이터 바인딩
      자바스크립트 트릭
      서버 관리
      docker
      소프트웨어 개발
      주식투자
      마이크로서비스
      협업 도구
      C# WPF
      데이터 파이프라인
      Apache Kafka
      java8
      Java
      웹 개발
      분산 메시징 시스템
      데이터베이스 성능
      투자
      클라우드 네이티브
      재테크
      클라우드 컴퓨팅
      WPF
      rest api
      javascript
      ES6
      dynamicresource
      Kubernetes
      XAML
      DevOps
    • 최근 댓글

    • 최근 글

    • 250x250
    이프로그
    [Java] 2차원 배열 정렬하기(Comparator, Lamda)
    상단으로

    티스토리툴바