package ListInterface;
import List.Person;
import org.junit.Test;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetTest {
/*
// TreeSet中的数据要求同一个类的对现象:输出的时候会排序之后输出
有两种排序:自然排序和定制排序
// 定制排序: TreeSet set = new TreeSet(com);
*/
@Test
public void test1(){
TreeSet set = new TreeSet();
// 失败:不能添加不同类的对象
// set.add(123);
// set.add(456);
// set.add("aa");
// set.add(new Person("Tom",123));
// 举例1:
// set.add(123);
// set.add(456);
// set.add(-31);
// set.add(11);
// set.add(8);
// 举例2:
set.add(new Person("tom",12));
set.add(new Person("mike",14));
set.add(new Person("jerry",21));
set.add(new Person("sheep",18));
set.add(new Person("jerry",9));
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next()); //会按照从小打大的数据排序
}
}
@Test
public void test2(){
// 按照年龄从小到大排列
Comparator com = new Comparator() {
@Override
public int compare(Object o1, Object o2) {
if(o1 instanceof Person && o2 instanceof Person){
Person p1 = (Person) o1;
Person p2 = (Person) o2;
return Integer.compare(p1.getAge(),p2.getAge());
}else{
throw new RuntimeException("输入的数据类型不一致");
}
}
};
TreeSet set = new TreeSet(com);
set.add(new Person("tom",12));
set.add(new Person("mike",14));
set.add(new Person("jerry",21));
set.add(new Person("sheep",18));
set.add(new Person("jerry",9));
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next()); //会按照从小打大的数据排序
}
}
}