ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Comparable<T>, Comparator<T> 인터페이스 - 정렬방식 지정
    JAVA 2020. 5. 26. 21:52
    728x90
    728x90

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

     

    728x90
    728x90

    '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
Designed by Tistory.