오름차순 정렬과 내림차순 정렬에 대해 알아보자

2025. 12. 5. 23:03·Java

시작

정렬은 코딩테스트에서도, 실제 프로젝트에서도 가장 자주 쓰이는 기능이다. 이렇게 자주 사용되지만, 자바에서는 배열과 리스트의 정렬 방식이 서로 달라서 헷갈리기 쉽다. 그래서 이번 글에서는 이 부분을 한 번에 정리해보려고 한다. 특히 아래 네 가지 타입은 정렬 방법이 각각 미묘하게 다르므로, 글을 읽기 전에 머릿속에 한 번 떠올려두면 이해가 더 잘 될 것이다.

  • int[]
  • Integer[]
  • List<Integer>
  • List<String>

int[] 오름차순 정렬

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 6, 5, 3, 2};
        Arrays.sort(arr);
        System.out.println("arr = " + Arrays.toString(arr)); // arr = [1, 2, 3, 5, 6]
    }
}

가장 기본적인 오름차순 정렬 방식이다.


int[] 내림차순 정렬

import java.util.Arrays;
import java.util.Collections;

public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 6, 5, 3, 2};

        Integer[] newArr = Arrays.stream(arr)
                .boxed()
                .toArray(Integer[]::new);

        Arrays.sort(newArr, Collections.reverseOrder());
        System.out.println("arr = " + Arrays.toString(newArr));
    }
}

여기서 중요한 점은 

  • int[]는 원시 타입 배열임
  • Arrays.sort()는 기본적으로 오름차순만 지원 -> 바로 내림차순을 적용할 수 없음 
  • Comparator를 사용하려면 "객체 배열" 이어야 함
  • .boxed() 과정을 통해서 각 int를 Integer 객체로 변환 시켜야함

Arrays는 무엇인가?

Arrays는 자바 표준 라이브러리에 있는 java.util.Arrays 클래스임 (배열을 다루기 위한 유틸리티 클래스)

배열을 생성, 변환, 정렬, 탐색 등 다양한 편리한 기능을 제공

  • Arrays.sort(arr) → 배열 정렬
  • Arrays.toString(arr) → 배열 내용을 문자열로 변환
  • Arrays.asList(arr) → 배열을 리스트로 변환

stream()은 무엇인가?

Stream은 데이터의 흐름을 다루는 일종의 파이프라인 (데이터 자체를 바꾸는 게 아니라, 데이터를 처리할 수 있게 만든다고 보면 됨) 배열, 리스트 같은 컬렉션 데이터를 순회, 필터링, 변환, 집계할 때 사용

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};

        // 배열을 Stream으로 변환
        Arrays.stream(arr)
                .filter(n -> n % 2 == 0) // 짝수만 걸러냄
                .map(n -> n * 2)         // 2배로 변환
                .forEach(System.out::println); // 출력 4랑 8이 출력됨
    }
}

리스트 형식인 경우 (Integer, String)

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numList = new ArrayList<>(Arrays.asList(1, 6, 5, 3, 2));
        List<String> strList = new ArrayList<>(Arrays.asList("AA", "BB", "CC"));

        //Integer 오름차순
        Collections.sort(numList);
        System.out.println("numList = " + numList);
        //Integer 내림차순
        Collections.sort(numList, Collections.reverseOrder());
        System.out.println("numList = " + numList);

        //String 오름차순
        Collections.sort(strList);
        System.out.println("strList = " + strList);
        //String 내림차순
        Collections.sort(strList, Collections.reverseOrder());
        System.out.println("strList = " + strList);
        
        
        //numList = [1, 2, 3, 5, 6]
        //numList = [6, 5, 3, 2, 1]
        //strList = [AA, BB, CC]
        //strList = [CC, BB, AA]
    }
}


참고

https://techvidvan.com/tutorials/how-to-sort-a-list-in-java

 

 

 

 

'Java' 카테고리의 다른 글

자바에서 int[] ↔ List<Integer> 변환 (for문은 이제 그만...)  (0) 2025.12.08
ArrayList가 처음이라면 꼭 알아야 할 핵심 기능  (0) 2025.12.04
새벽 코딩하다가 알게 된 String.repeat() - 반복문 대신 이렇게 쓰자!  (0) 2025.12.04
'Java' 카테고리의 다른 글
  • 자바에서 int[] ↔ List<Integer> 변환 (for문은 이제 그만...)
  • ArrayList가 처음이라면 꼭 알아야 할 핵심 기능
  • 새벽 코딩하다가 알게 된 String.repeat() - 반복문 대신 이렇게 쓰자!
나는지토
나는지토
  • 나는지토
    안녕은헬로입니다.
    나는지토
  • 전체
    오늘
    어제
    • 분류 전체보기 (27)
      • Backend Design (1)
      • NestJS (19)
        • 개발 (9)
        • 개념과 구조 정리 (10)
      • SpringBoot (0)
      • Java (4)
        • 코테 (0)
      • PostgreSQL (2)
      • Docker (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    조회 방식
    db 연결 오류
    인증 가드
    JWT
    Java
    서비스
    Redis
    BullMQ
    토큰 검사
    역할 검사
    채팅
    nestjs
    PostgreSQL
    nestjs/jwt
    자료구조
    컨트롤러
    코딩테스트
    커서기반 조회
    Collections
    ArrayList
  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
나는지토
오름차순 정렬과 내림차순 정렬에 대해 알아보자
상단으로

티스토리툴바