Treeset의 사용자정의 정렬

1656 단어
1. 정렬을 맞춤형으로 하는 것은 스스로 비교기를 쓰는 것이다.MyComparator.2. set을 정의할 때 뒤에 있는 () 안에 구조자 대상인 TreeSet set = new TreeSet<> (new My Comparator () 를 생성합니다.3. 사용자 정의 MyComparator 클래스는 Comparator 인터페이스를 구현합니다.안에 사용된 개인 클래스와 책 클래스는 중의 개인 클래스와 책 클래스를 사용하고 compare 방법을 다시 써서 두 개의 Person 대상을 전달한다.자연 정렬을 알아보면 맞춤형 정렬이 간단합니다.set을 정의할 때 하나의 구조기를 매개 변수로 만듭니다.사용자 정의 구조 클래스는 Comparator 인터페이스를 실현합니다.compare 방법을 다시 씁니다.4.compare방법을 다시 쓸 때 방법의 두 매개 변수 앞에는this대상을 대표하고 set집합의 대상에 추가하며 두 번째 매개 변수는 인터페이스를 대표하는 대상이다.
package com.qf.demo7;

import java.util.Comparator;
import java.util.TreeSet;

import com.qf.demo6.Book;
import com.qf.demo6.Person;
/**
 *  
 *                Comparable ,    compareTo
 *          TreeSet 
 *  
 *                Comparator    compare
 *          TreeSet      comparator  
 * 
 * 
 * @author Administrator
 *
 */
public class Test {

    public static void main(String[] args) {
        
        TreeSet set = new TreeSet<>(new MyComparator());
        set.add(new Person("xiaoming", 5, new Book("renzaijiogtu", 4)));
        set.add(new Person("xiaoming", 1, new Book("renzaijiogtu", 4)));
        set.add(new Person("xiaoming", 5, new Book("renzaijiogtu", 4)));
        System.out.println(set);

    }
}

//  
class MyComparator implements Comparator{
                    
                    //  1           2    
    @Override       // this--o1     o --> o2
    public int compare(Person o1, Person o2) {
        if(o1.getAge()>o2.getAge()){
            return -1;
        }else if(o1.getAge()

좋은 웹페이지 즐겨찾기