Sam Story

JAVA - 배열 요소의 내림차순,오름차순 본문

JAVA

JAVA - 배열 요소의 내림차순,오름차순

Sam H 2024. 3. 23. 16:02

 

오늘은 자바 배열의 요소들을 오름차순, 내림차순 하는법에 대해

간단하게 소개해보려 한다.

 

보통 오름차순,내림차순 하면

숫자, 혹은 가나다 순으로 정렬하는걸 많이 생각한다

물론 숫자, 가나다 순도 오름차순 내림차순 정렬은 당연히 가능하지만

 

문자인 경우에서 날짜,숫자 로 표기되어 있는 문자들도 오름차순 내림차순 정렬이 가능하다.

 

이러한 경우에 정렬도 많은 경우에 도움이 되는데 예제를 보면서

문자안에 날짜가 있는 경우를 정렬했을때 어떻게 되는지 알아보자.

 

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

 

배열의 정렬을 메서드로 간단하게 쓰기위해서 java,util.Arrays 를 import 해준다

그리고 내림차순의 reverseOrder() 메서드 사용을위해 Collections도 import 해준다.

 

 

오름차순 예제

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

public class Main {
    public static void main(String[] args) {

        // 임의의 날짜값이 있는 String 배열
        String[] dates = {"2002-05-05","2023-05-29","1994-05-25","2024-03-23"};
        
        // 배열 길이만큼 순회해서 리스트의 값을 확인한다.
        for (int i = 0; i < dates.length; i++) {

            System.out.println("정렬하기 전 날짜 : "+dates[i]);

        }

        System.out.println("-------------구분선-------------");
        
        // 배열을 오름차순으로 정렬하는 메서드
        Arrays.sort(dates);
       
        // 정렬한 후 배열을 출력했을때
        for (int i = 0; i < dates.length; i++) {

            System.out.println("정렬한 후 날짜 : " + dates[i]);

        }

    }

}

 

 

실행 결과

실행 결과

 

결과에서 볼 수 있듯이 날짜 순서에 맞게 정렬되는걸 볼 수 있다.

예제에서는 연도를 전부 다르게 했지만 연도가 같더라도 월,일에 따라서 정렬이 된다.

 

 

그럼 이번엔 반대로 내림차순으로 연도를 같은연도로 하고 비교해 보도록 하자.

 

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

public class Main {
    public static void main(String[] args) {
         
        // 날짜 String 데이터의 연도를 전부 같게 맞춰줬음. 
        String[] dates = {"2024-05-05","2024-05-29","2024-05-25","2024-03-23"};
        
        // 정렬하기전 배열을 출력한다.
        for (int i = 0; i < dates.length; i++) {

            System.out.println("정렬하기 전 날짜 : "+dates[i]);

        }

        System.out.println("-------------구분선-------------");
       
        // Collections의 reverseOrder() 메서드를 이용해 내림차순으로 배열을 정렬한다.
        Arrays.sort(dates, Collections.reverseOrder());
        
        // 정렬한 후 배열 출력
        for (int i = 0; i < dates.length; i++) {

            System.out.println("정렬한 후 날짜 : " + dates[i]);

        }

    }

}

 

 

실행 결과

실행 결과

 

 

실행 결과에서 알 수 있듯이 월,일이 달라도 내림차순이 되는걸 볼 수 있다.

 

 

 

이러한 내용을 포스팅 하는 이유는 데이터베이스에 있는

날짜 데이터를 내림차순으로 정렬 해야하는 경우가 생겼었는데

혹시나 하는 마음에 테스트 했을때 스트링안에 날짜들이

정렬되는걸 우연히 알게되었고 이러한 배열 정렬기능을 이용해서

원하던 기능을 만들었었기 때문이다.

 

그래서 이러한 정렬 기능을 이용하면 String 배열에 날짜 데이터들도 정렬할 수 있다는 걸 알 수있다.

'JAVA' 카테고리의 다른 글

JAVA - 스레드 (Thread)  (0) 2024.05.12
JAVA - 랜덤 함수 (Random class)  (0) 2024.05.06
JAVA - 문자열 자르기 Split  (0) 2024.03.17
JAVA - ArrayList 사용  (0) 2024.03.04
JAVA - Class 란?  (0) 2024.01.28