TreeSet 클래스 의 정렬

하나. TreeSet 클래스 의 정렬 개요
TreeSet 은 빨간색 과 검은색 트 리 의 데이터 구 조 를 이용 하여 요 소 를 정렬 합 니 다.TreeSet 은 두 가지 정렬 방법 을 지원 합 니 다. 자연 정렬 과 맞 춤 형 정렬 입 니 다.
  • 자연 정렬: TreeSet 은 집합 요소 의 compare To (Object obj) 방법 으로 요소 간 의 크기 관 계 를 비교 한 다음 에 집합 요 소 를 오름차 순 으로 배열 하 는데 이런 방식 이 바로 자연 배열 이다.
  • 맞 춤 형 정렬: TreeSet 은 Comparator 인터페이스의 도움 을 받 았 다.이 인터페이스 에는 o1 과 o2 의 크기 를 비교 하 는 int compare (T o1, T o2) 방법 이 포함 되 어 있다.

  • 맞 춤 형 정렬 응용
    1 코드 예시
    import java.util.*;
    
    class M
    {
    	int age;
    	public M(int age)
    	{
    		this.age = age;
    	}
    	public String toString()
    	{
    		return "M[age:" + age + "]";
    	}
    }
    public class TreeSetTest4
    {
    	public static void main(String[] args)
    	{
    		//   Lambda         Comparator
    		TreeSet ts = new TreeSet((o1 , o2) ->
    		{
    			M m1 = (M)o1;
    			M m2 = (M)o2;
    			//   M   age       ,age  ,M      
    			return m1.age > m2.age ? -1
    				: m1.age < m2.age ? 1 : 0;
    		});
    		ts.add(new M(5));
    		ts.add(new M(-3));
    		ts.add(new M(9));
    		System.out.println(ts);
    	}
    }

     
    2 코드 결과
    [M[age:9], M[age:5], M[age:-3]]
    3 코드 설명
    이 코드 는 TreeSet 집합 대상 을 만 들 때 Comparator 대상 을 이 TreeSet 집합 과 연결 시 키 고 이 Comparator 대상 이 집합 요소 의 논리 적 정렬 을 책임 집 니 다.Comparator 는 함수 식 인터페이스 이기 때문에 Comparator 대신 Lambda 표현 식 을 사용 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기