본문 바로가기
Java

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

by 걸어가는 신사 2021. 9. 30.

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<Member> {
        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<java.lang.Object>)
에러 발생

 

(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));

 

반응형

댓글