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를 기준으로 정렬
반응형
'Java' 카테고리의 다른 글
[JAVA] String Methods (String 클래스 method) (0) | 2021.11.05 |
---|---|
[JAVA] Iterator Interface (0) | 2021.10.14 |
[JAVA] Comparable Interface vs Comparator Interface (0) | 2021.09.30 |
[JAVA] 배열 정렬(Sort)하기 (feat. Arrays.class) (0) | 2021.09.30 |
[JAVA] 컬렉션 프레임웍 (Collections Framework) (0) | 2021.09.21 |
댓글