on
배열 정렬(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