package com.lovecoding.day19.set01;

import org.junit.Test;

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

public class  TestTreeSet {

    //自定义类型排序 //自定义排序
    @Test
    public void test04(){
        //自定义排序 排序规则
        // public TreeSet(Comparator<? super E> comparator) {
        //     this(new TreeMap<>(comparator));
        // }
        TreeSet<Person> set= new TreeSet<>(new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge().compareTo(o2.getAge());
            }
        });

        set.add(new Person("a",11));
        set.add(new Person("b",12));
        set.add(new Person("c",13));
        set.add(new Person("d",14));


        System.out.println(set);
    }

    //自定义类型排序 自然排序
    @Test
    public void test03(){
        TreeSet<Person> set= new TreeSet<>();

        set.add(new Person("a",11));
        set.add(new Person("b",11));
        set.add(new Person("c",11));
        set.add(new Person("d",11));

        //包装 TreeSet 数据必须实现 Comparable
        System.out.println(set);

    }


    @Test
    public void test02(){

        TreeSet<Integer> treeSet1= new TreeSet<>();

        treeSet1.add(1);
        treeSet1.add(3);
        treeSet1.add(9);
        treeSet1.add(2);
        treeSet1.add(6);
        treeSet1.add(6);
        //排序
        // 自然排序  ： 实现Comable 接口  泛型实现接口
        // public int compareTo(Integer anotherInteger) {
        //    return compare(this.value, anotherInteger.value);
        // }
        System.out.println(treeSet1);

    }

    @Test
    public void test01(){

        TreeSet<Integer> treeSet1= new TreeSet<>();

        treeSet1.add(1);
        treeSet1.add(3);
        treeSet1.add(9);
        treeSet1.add(2);
        treeSet1.add(6);
        treeSet1.add(6); //无重复
        //排序
        System.out.println(treeSet1);

    }
}
