배열 정렬(Sort)하기 (feat. Arrays.class)

배열 정렬(Sort)하기 (feat. Arrays.class)

1. 배열 오름차순 정렬

Arrays.sort()

sort() method는 전달받은 배열의 모든 요소를 오름차순으로 정렬합니다.

sort() method는 매개변수로 정렬할 배열을 전달받는다.

(1) 정수 자료형

int [] array = {3, 5, 7, 2, 6, 4, 1, 9, 10, 8}; //Arrays.toString() System.out.println(Arrays.toString(array)); //Arrays.sort() Arrays.sort(array); System.out.println(Arrays.toString(array));

(2) 문자 자료형

Character [] arr = {'b', 'c', 'a'}; //Arrays.toString() System.out.println(Arrays.toString(arr)); //Arrays.sort() Arrays.sort(arr); System.out.println(Arrays.toString(arr));

(3) 문자열

String [] a = {"hello", "apple", "campus"}; //Arrays.toString() System.out.println(Arrays.toString(a)); //Arrays.sort() Arrays.sort(a); System.out.println(Arrays.toString(a));

(4) 사용자 정의 Class

Member m1 = new Member(1, "B"); Member m2 = new Member(2, "C"); Member m3 = new Member(3, "A"); Member [] members = {m1, m2, m3}; //Arrays.toString() System.out.println(Arrays.toString(members)); //Arrays.sort() Arrays.sort(members); System.out.println(Arrays.toString(members)); private static class Member implements Comparable { private int id; private String name; public Member(int id, String name) { this.id = id; this.name = name; } @Override public int compareTo(Member m) { return name.compareTo(m.name); } @Override public String toString() { return "Member{" + "id=" + id + ", name='" + name + '\'' + '}'; } }

2. 배열 내림차순 정렬

Arrays.sort(객체 , Collections.reverseOrder())

단순히 Collections.reverseOrder()를 붙여주면 내림차순으로 정렬 가능한다.

Arrays.sort(a, Collections.reverseOrder()); Arrays.sort(members, Collections.reverseOrder());

* 주의

Collections.reverseOrder() 사용 시 배열은 객체만 가능하다.

primitive type사용시 컴파일 에러

(1) Example

int [] array = {3, 5, 7, 2, 6, 4, 1, 9, 10, 8}; //Arrays.toString() System.out.println(Arrays.toString(array)); //Arrays.sort() Arrays.sort(array, Collections.reverseOrder()); System.out.println(Arrays.toString(array));

java: no suitable method found for sort(int[],java.util.Comparator)

에러 발생

(2) 수정

int 자료형은 Integer class로 바꿔준다.

Integer [] array = {3, 5, 7, 2, 6, 4, 1, 9, 10, 8}; //Arrays.toString() System.out.println(Arrays.toString(array)); //Arrays.sort() Arrays.sort(array, Collections.reverseOrder()); System.out.println(Arrays.toString(array));

from http://choiyeonho903.tistory.com/41 by ccl(A) rewrite - 2021-09-30 15:28:18