본문 바로가기
Java

[JAVA] List 정렬(Sort)하기 (feat. Collections.class)

by 걸어가는 신사 2021. 10. 1.

1. List 정렬하기

(1) Collections.sort()

  • sort() method는 전달받은 배열의 모든 요소를 오름차순으로 정렬한다.
  • sort() method는 매개변수로 정렬할 배열을 전달받는다.

(2) Collections.reverse()

  • reverse() method는 전달받은 배열의 모든 요소를 내림차순으로 정렬합니다.
  • reverse() method는 매개변수로 정렬할 배열을 전달받는다.

 

2. Example

(1) Integer

List<Integer> arrayList = new ArrayList<>();
arrayList.add(3);
arrayList.add(8);
arrayList.add(2);
arrayList.add(5);
arrayList.add(1);

System.out.println(arrayList);
Collections.sort(arrayList);
System.out.println(arrayList);
Collections.reverse(arrayList);
System.out.println(arrayList);

(2) String

List<String> arrayList2 = new ArrayList<>();
arrayList2.add("spring");
arrayList2.add("summer");
arrayList2.add("fall");
arrayList2.add("winter");
arrayList2.add("rain");

System.out.println(arrayList2);
Collections.sort(arrayList2);
System.out.println(arrayList2);
Collections.reverse(arrayList2);
System.out.println(arrayList2);

(3) 사용자 정의 class

List<Member> arrayList3 = new ArrayList<>();
arrayList3.add(new Member(3, "A"));
arrayList3.add(new Member(4, "B"));
arrayList3.add(new Member(1, "C"));
arrayList3.add(new Member(5, "D"));
arrayList3.add(new Member(2, "E"));

System.out.println(arrayList3);
Collections.sort(arrayList3);
System.out.println(arrayList3);
Collections.reverse(arrayList3);
System.out.println(arrayList3);

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) {
            if(this.id > m.id)
                return 1;
            else if(this.id == m.id)
                return 0;
            else
                return -1;
        }

        @Override
        public String toString() {
            return "Member{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    '}';
        }
}
  • Comparable 인터페이스 혹은 Comparator 인터페이스 implement 통하여 정렬 기준을 잡아 주어야 한다.
  • 위 예제는 Comparable 인터페이스 implement 그리고 id를 기준으로 정렬

 

반응형

댓글