-
[자바/java] 배열,리스트 정렬 (Comparable, Comparator)개발/자바 2021. 8. 27. 17:21
※ Arrays.sort
- 배열의 숫자, 알파벳, 한글을 오름차순(natural ordering/자연스러운 순서)로 정렬
※ Collections.sort
- ListCollection일 경우 (ArrayList, LinkecList, Vector 등)
Comparable, Comparator
※ Comparable
- 정렬할 class내부에 정의하여 그 규칙에 맞게끔 정렬
※ Comparator
- 따로 comparator를 만들어 정렬시 comparator를 바꿔가면서 정렬가능
public static class Friend implements Comparable<Friend>{ private String name; private int age; public Friend(String name, int age) { super(); this.name = name; this.age = age; } @Override public int compareTo(Friend o) { return this.age - o.age; } } Collections.sort(friends); //List Arrays.sort(friends); //배열
public static class SortFriendByNameInAsc implements Comparator<Friend>{ @Override public int compare(Friend o1, Friend o2) { if(o1.x > o2.x){ return 1; } } } Collections.sort(friends, new SortFriendByNameInAsc());
comparable : https://www.acmicpc.net/source/23811051
comparator : https://www.acmicpc.net/source/23812760
============================================================================
※ comparator를 사용과 동시에 정의가능
Arrays.sort(arr, (e1,e2)->{ if(e1.length() > e2.length()){ return 1; }else{ return -1; } });
'개발 > 자바' 카테고리의 다른 글
자바 컬렉션 정리 (Collection) (0) 2021.11.09 [자바/java] 클래스 생성자 패턴 3가지 (점층적, 빈즈, 빌더) (0) 2021.10.26 [자바/java] try-with-resources (0) 2021.05.26 [자바/java] 자바 기본서 헷갈리는것들 정리 (0) 2021.05.26 [자바/java] enum 열거형 (0) 2021.03.29