Seung's Learning Record

[ JAVA ] 배열 정렬 본문

프로그래밍/JAVA

[ JAVA ] 배열 정렬

70_0ewd 2022. 8. 18. 23:52

자바는 배열을 정렬할 때 반복문이 필요없다는것을 몰랐다. 백준 문제를 풀면서 자바를 공부하려고 했는데 이론을 먼저 공부 해야되나 고민이 되긴하지만 그랬다가는 너무 속도가 떨어질거같다..ㅜㅜ 역시 독학은 쉽지 않은거같다.


Arrays.sort()

 배열 오름차순

 Arrays.sort(변수명)을 사용하여 간단하게 오름차순 정렬이 가능하다.

import java.util.Arrays;

public class SortUp
	public static void main(String[] args){
        int[] array = {56, 78, 26, 19, 47};
        
        Arrays.sort(array); 		//배열 오름차순 정렬
        
        for(int i=0; i<array.length ; i++)
        	System.out.printf(" [%d] ", array[i]);
        }
 }
 // [19]  [26]  [47]  [56]  [78]

배열 내림차순

배열을 내림차순으로 정렬하기 위해서 Sort()메소드를 쓸 경우 아래와 같은 에러가 뜬다.

The method sort(int[]) in the type Arrays is not applicable for the arguments (int[], Collections.reverseOrder())

이 에러는 int에서는  Collections.reverseOrder()가 사용을 할 수 없어서 생긴다.

이러한 에러없이 내림차순정렬을 하려면 int[]가 아닌 Interger[]변수로 선언을 해야한다.

(아직까진 왜 변수선언을 저렇게 해야하는지 공부하지 못했다. 해당 내용 공부 후 추가할 예정!)

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

public class SortDown {
	public static void main(String[] args) {
    	Integer[] array = {58, 32, 64, 12, 15, 99};
        
        Arrays.sort(array, Collections.reverseOrder());
        
        for(int i=0; i<array.length; i++)
        	System.out.printf(" [%d] ", array[i]);
        }
}
// [99]  [64]  [58]  [32]  [15]  [12]

배열 부분적으로 내림차순 정렬하기

Arrays.sort(배열변수, 시작index, 종료index, Collections.reverseOrder()); 를 사용하여 부분적인 내림차순 가능하다.

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

public class SortPart{
	public static void main(String[] args)  {	
		Integer[] array = {58, 32, 64, 12, 15, 99};
		
		Arrays.sort(array, 1, 4, Collections.reverseOrder());
		
		for(int i = 0; i < array.length; i++)		
			System.out.printf" [%d] ", array[i]);		
	}
}
//[58]  [64]  [32]  [12]  [15]  [99]

 

'프로그래밍 > JAVA' 카테고리의 다른 글

[ JAVA ] StringBuilder - 문자열 더하기  (0) 2022.08.25
[ JAVA ] StringTokenizer()를 사용한 문자열 분리  (0) 2022.08.21
[ JAVA ] 배열  (0) 2022.08.18
[ JAVA ] 표준 입출력  (0) 2022.08.16