본문 바로가기
JAVA

[Java] 📚 배열 정렬하기 Arrays.sort()

by ro117youshin 2022. 8. 17.
728x90

Java에서 Array나 List를 정렬하고 싶다면 java.util.Arrays 클래스의 sort()메서드를 사용하면 따로 정렬 로직을 구현하지 않더라도 정렬할 수 있다.

Arrays 클래스는 Array의 복사, 항목 정렬, 검색과 같은 Array 조작 기능을 가지고 있다.

 

배열 오름차순 정렬

Arrays.sort()메서드의 매개값으로 기본 타입 Array나 String Array를 지정하면 자동으로 오름차순 정렬이 된다.

기본 타입 배열 오름차순 정렬 (Ascending sort)

import java.util.Arrays;

public class Sort {
	public static void main(String[] args) {
    	int arr[] = {1,2,3,4,6,7,10};
        Arrays.sort(arr);
        for (int a : arr) System.out.print("[" + a + "]");
    }
}

 

String타입 배열 오름차순 정렬 (Ascending sort)

import java.util.Arrays;

public class Sort {
	public static void main(String[] args) {
            String strArr[] = {"apple", "zzzzz", "banana", "sort"};
            Arrays.sort(strArr);
            for (String a : strArr) System.out.print("[" + a + "]");
    }
}


배열 내림차순 정렬

내림차순 정렬할 때는 Collections 클래스의 reverseOrder() 메서드를 사용하면 된다.

만약 기본 타입 배열을 내림차순으로 정렬하고 싶다면 기본 타입의 배열을 래퍼 클래스로 만들어 Comparator를 두 번째 인자에 넣어주어야 역순으로 정렬할 수 있다.

※ String은 기본 타입이 아님

기본타입 배열 내림차순 정렬 (Descending sort)

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

public class Sort {
	public static void main(String[] args) {
            Integer arr[] = {1, 2, 3, 4, 6, 7, 10};
            Arrays.sort(arr, Collections.reverseOrder());
            for (int i : arr) System.out.print("["+i+"]");
	}
}

 

String타입 배열 내림차순 정렬 (Descending sort)

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

public class Sort {
	public static void main(String[] args) {
		String strArr[] = {"apple", "zzzzz", "banana", "sort"};
		Arrays.sort(strArr, Collections.reverseOrder());
		for (String a : strArr) System.out.print("[" + a + "]");
	}
}


배열 일부분만 정렬

Arrays.sort() 메서드의 매개 값으로 배열, 시작 index, 끝 index를 넣어주면 해당 index부분만 정렬할 수 있다.

import java.util.Arrays;

public class Sort {
	public static void main(String[] args) {
		int arr[] = {1, 8, 9, 2, 90, 50, 30};
		Arrays.sort(arr, 0, 4); // 0, 1, 2, 3 요소만 정렬
		for (int i : arr) System.out.print("[" + i + "]");
	}
}

 

Reference

 

 

댓글