Chef.Yeon
Code Cook
Chef.Yeon
전체 방문자
오늘
어제
  • 분류 전체보기 (230)
    • 게임 개발 (1)
      • Unity (1)
    • Android (27)
      • Kotlin (19)
      • 우아한테크코스 5기 (4)
    • Language (11)
      • 파이썬 (3)
      • Java (7)
    • DB (2)
      • SQL (16)
    • Spring (25)
    • 코딩테스트 (56)
    • Git (1)
    • TIL (85)
    • DevOps (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프리코스
  • SQL
  • java
  • ec2
  • 프로그래머스
  • 코딩테스트
  • MariaDB
  • 문자열
  • til
  • spring
  • grafana
  • 내림차순
  • webflux
  • elasticsearch
  • 에라토스테네스의 체
  • kotlin
  • 백준
  • 안드로이드
  • 레포지토리
  • rsocket
  • 파이썬
  • Docker
  • kibana
  • Android
  • 코틀린
  • 우아한테크코스
  • Wil
  • 다이나믹 프로그래밍
  • 코틀린 인 액션
  • enum

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Chef.Yeon

Code Cook

Language/Java

[Java] int 배열, List 오름차순/내림차순 정렬

2023. 3. 9. 16:59

평소 int 배열을 자주 사용하는데 오름차순 정렬은 쉽지만, 항상 내림차순 정렬이 기억이 안나더라구요. 

그래서 오늘은 int 배열과 List의 오름차순, 내림차순 정렬에 대해 알아보겠습니다.

728x90

int 배열

int 배열을 정렬할 때는 java.util.Arrays를 이용합니다. 

 

1) 오름차순 정렬

import java.util.Arrays;

public class primitiveSort {
    public static void main(String[] args) {
        int[] arr = {25, 4, 7, 1};

        //오름차순 정렬
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

2) 내림차순 정렬

int 배열의 내림차순 정렬은 바로 Arrays.sort(arr)를 사용해서 정렬할 수 없습니다.

우선 원시 타입의 배열을 래퍼 클래스로 만들어 주고, sort의 두 번째 인자인 Comparator 부분에 Collections.reverseOrder() 를 사용해주면 됩니다.

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

public class primitiveReverseSort {
    public static void main(String[] args) {
        int[] arr = {25, 4, 7, 1};

        //내림차순 정렬
        Integer[] wrapperArr =Arrays.stream(arr).boxed().toArray(Integer[]::new);
        Arrays.sort(wrapperArr, Collections.reverseOrder());
        System.out.println(Arrays.toString(arr));
    }
}

3) int 배열 일부분만 정렬

다음과 같이 인덱스 범위를 지정해주면 해당 범위만 오름차순으로 정렬된 것을 볼 수 있습니다.

import java.util.Arrays;

public class primitiveSort2 {
    public static void main(String[] args) {
        int[] arr = {25, 4, 7, 1};

        // 일부분 오름차순 정렬
        Arrays.sort(arr, 1, 2);
        System.out.println(Arrays.toString(arr));
    }
}

4) String은 원시 타입이 아니다!

String은 원시 타입이 아니기 때문에 wrapper 클래스로 감쌀 필요가 없습니다.

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

public class stringSort {
    public static void main(String[] args) {
        String[] strings = {"melon", "apple", "banana"};

        //오름차순 정렬
        System.out.print("오름차순 정렬: ");
        Arrays.sort(strings);
        System.out.println(Arrays.toString(strings));

        //내림차순 정렬
        System.out.print("\n내림차순 정렬: ");
        Arrays.sort(strings, Collections.reverseOrder());
        System.out.println(Arrays.toString(strings));
    }
}

List 

리스트의 정렬할 때는 java.util.Collections를 이용합니다.

1) 오름차순 정렬

List<Stirng>은 알파벳 사전 순서대로 정렬됩니다.

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

public class listSort {
    public static void main(String[] args) {
        List<String> strings = new ArrayList<>();
        strings.add("banana");
        strings.add("apple");
        strings.add("melon");

        //오름차순 정렬
        Collections.sort(strings);
        for (String string : strings) {
            System.out.print(string + " ");
        }
    }
}

 

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

public class listSort2 {
    public static void main(String[] args) {
        List<Integer> ints = new ArrayList<>();
        ints.add(43);
        ints.add(0);
        ints.add(20);

        // 오름차순 정렬
        Collections.sort(ints);
        for (Integer i : ints) {
            System.out.print(i + " ");
        }
    }
}

 

2) 내림차순 정렬

내림차순 정렬은 List의 sort 메서드를 사용하고 Comparator 인자에 Collections.reverserOrder() 를 사용해주면 됩니다.

객체명.sort(Collections.reverserOrder()) 사용해도 됩니다.

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

public class listReverseSort {
    public static void main(String[] args) {
        List<String> strings = new ArrayList<>();
        strings.add("banana");
        strings.add("apple");
        strings.add("melon");

        //내림차순 정렬
        strings.sort(Collections.reverseOrder());
        for (String string : strings) {
            System.out.print(string + " ");
        }

        System.out.println("");

        List<Integer> ints = new ArrayList<>();
        ints.add(43);
        ints.add(0);
        ints.add(20);

        //내림차순 정렬
        Collections.sort(ints, Collections.reverseOrder());
        for (Integer i : ints) {
            System.out.print(i + " ");
        }
    }
}

728x90

'Language > Java' 카테고리의 다른 글

[Java] Dynamic Programming, DP에 대해 알아보자  (0) 2023.03.11
[Java] 스트림이란? 스트림stream 사용하기  (0) 2023.03.11
[Java] String 배열 대소문자 구분 없이 오름차순/내림차순 정렬하기  (0) 2023.03.10
[Java] 객체 배열/리스트 오름차순,내림차순 정렬과 다중 조건 정렬  (0) 2023.03.09
[Java] Collection에 저장된 요소 출력하기 (Iterator, ListIterator)  (0) 2023.03.07
    'Language/Java' 카테고리의 다른 글
    • [Java] 스트림이란? 스트림stream 사용하기
    • [Java] String 배열 대소문자 구분 없이 오름차순/내림차순 정렬하기
    • [Java] 객체 배열/리스트 오름차순,내림차순 정렬과 다중 조건 정렬
    • [Java] Collection에 저장된 요소 출력하기 (Iterator, ListIterator)
    Chef.Yeon
    Chef.Yeon
    보기 좋고 깔끔한 코드를 요리하기 위해 노력하고 있습니다.

    티스토리툴바