-
Comparable<T>, Comparator<T> 인터페이스 - 정렬방식 지정JAVA 2020. 5. 26. 21:52728x90
TreeSet 에서 객체를 정렬할 때, Arrays.sort() 로 배열을 정렬할 때, 정렬하는 방식을 지정해 주어야 한다
이때 T 객체 클래스에서 Comparable<T>, Comparator<T> 인터페이스를 사용하여 정렬방식을 지정할 수 있다
Comparable<T>는 Comparable 이 구현이 안된 클래스에서 사용가능하다
(String은 이미 구현이 되어있기 때문에 - 오름차순으로) => Comparator<T> 을 구현해야한다
Comparable<T> 사용시
- compareTo() 메서드 오버라이딩 必
<T 클래스에서 >
@Override public int compareTo(Member member) { return (this.memberID - member.memberID); }
이때 return 이 양수이면 오름차순, 음수이면 내림차순으로 정렬이 된다
Comparator<T> 사용시
- compare() 메서드 오버라이딩 必
- TreeSet이나, TreeMap을 생성하는 생성자에 T객체 생성자 넣어 주어야 함
< T 클래스에서 >
@Override public int compare(Member o1, Member o2) { // o1 = 원래 값, o2 = 새로 들어오는 값 return (o1.memberID - o2.memberID); }
< T 클래스를 활용하는 TreeSet, TreeMap 클래스에서 >
public MemberTreeSet() { treeSet = new TreeSet<Member>(new Member()); }
728x90728x90'JAVA' 카테고리의 다른 글
ArrayList 객체 비교하기 (0) 2020.07.20 Lambda 식 / ArrayList를 사용한 Stream 연산 (0) 2020.05.28 GenericType / 2019-12-12 (0) 2020.01.15 Map계열의 Collections / HashMap / 2019-12-09 (0) 2020.01.15