[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]);

 

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

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

'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 직렬화 역직렬화 오류 해결 방법
이프로그
이프로그
리뷰, 개발, 일상을 기록하는 블로그
    250x250
  • 이프로그
    이프로그의 IT이야기
    이프로그
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • Programming (111)
        • C# WPF (11)
        • Java Spring (16)
        • JavaScript & TypeScript (5)
        • Git (9)
        • Database (5)
        • Etc (42)
      • 생활상식 (24)
      • 리뷰 (8)
      • 주식 (12)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

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

    • 최근 글

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

    티스토리툴바