[JAVA] Array 정렬하기

세하·2025년 5월 9일

JAVA

목록 보기
13/17

Array와 ArrayList 비교

XArrayArrayList
사이즈고정 int[] arr = new int[3];가변적 ArrayList arrList = new ArrayList<>();
속도초기화시 메모리에 할당되어 ArrayList보다 속도가 빠름데이터 추가 삭제시 메모리를 재할당하기 때문에 속도가 Array보다 느림
크기 변경변경 불가추가, 삭제 가능 add(), remove()
다차원int[][][] multiArr = new int[3][3][3];불가능

Primitive 기본타입 배열

오름차순

java.util.Arrays 클래스를 활용

int[] intArr = new int[] { 2, 5, 4, 1, 3 };
double[] doubleArr = new double[] { 2.5, 5.5, 4.5, 1.5, 3.5 };

// 정렬
🌟 Arrays.sort(intArr);
🌟 Arrays.sort(doubleArr);

// 출력
System.out.println(Arrays.toString(intArr));
System.out.println(Arrays.toString(doubleArr));
  
-----출력 결과-----
[1, 2, 3, 4, 5]
[1.5, 2.5, 3.5, 4.5, 5.5]

정렬 범위를 지정할 수도 있다.
Arrays.sort(배열, 시작인덱스, 끝인덱스(불포함))

int[] intArr = new int[] {1,3,5,2,4};
Arrays.sort(intArr,2,5); // index 2 ~ 4만 정렬
  
System.out.println(Arrays.toString(intArr));
----출력 결과-----
[1, 3, 2, 4, 5]

내림차순

  1. 객체타입 배열로 변환 후 내림차순 진행
int[] arr = {1, 2, 3, 4, 5};

// stream 사용
Integer[] integerArray = Arrays.stream(arr).boxed().toArray(Integer[]::new);
// 내림차순
Arrays.sort(integerArray, Collections.reverseOrder());
-> [5, 4, 3, 2, 1]
  
---------------------------------------------------------
  
🌟 
int[] arr = {1, 2, 3, 4, 5};

Integer[] integerArray = new Integer[arr.length];
for (int i = 0; i < arr.length; i++) {
    integerArray[i] = arr[i];
}
// 내림차순
Arrays.sort(integerArray, Collections.reverseOrder());

🌟 2. 배열 뒤집기

int[] arr = {5, 3, 8, 1, 9, 2};

// 배열을 오름차순으로 정렬
Arrays.sort(arr);

// 배열 뒤집어 주기
int n = arr.length;
for (int i = 0; i < n / 2; i++) {
    int temp = array[i];
    array[i] = array[n - 1 - i];
    array[n - 1 - i] = temp;
}                                                             

Object 객체타입 배열

Collections 사용

Integer[] arr = { 2, 5, 4, 1, 3 };
// 오름차순 정렬
🌟 Arrays.sort(arr);
-> [1, 2, 3, 4, 5]
// 내림차순 정렬
🌟 Arrays.sort(arr, Collections.reverseOrder());
-> [5, 4, 3, 2, 1]
  
String[] stringArr = new String[] { "Apple", "Cat", "Bear", "Elephant", "Deer" };
// 오름차순 정렬
Arrays.sort(stringArr);
- > [Apple, Bear, Cat, Deer, Elephant]
// 내림차순 정렬
Arrays.sort(stringArr, Collections.reverseOrder());
-> [Elephant, Deer, Cat, Bear, Apple]

Comparator 사용

Integer[] intArr = new Integer[] {1,2,1,1,1};
Arrays.sort(intArr,Comparator.naturalOrder()); // 오름차순
Arrays.sort(intArr,Comparator.reverseOrder()); // 내림차순

람다식 사용

Integer[] intArr = new Integer[] {1,3,5,2,4};
// 오름차순 정렬
Arrays.sort(intArr, (a, b) ->
	a - b
);
// 내림차순 정렬
Arrays.sort(intArr, (a, b) ->
	b - a
);

0개의 댓글