package TreeSet;
import java.util.Comparator;
import p.bean.Person;
/*
* 创建了一个根据Person类的name进行排序的比较器
*
*/
public class CompartorByName implements Comparator {
@Override
public int compare(Object o1, Object o2) {
Person p1=(Person) o1;
Person p2=(Person) o2;
int temp=p1.getName().compareTo(p2.getName());
// return 1 ; 怎么存怎么取 有序
return temp==0?p1.getAge()-p2.getAge():temp;
}
}
package TreeSet;
import java.util.Iterator;
import java.util.TreeSet;
import p.bean.Person;
import sun.reflect.generics.tree.Tree;
public class TreeSetDemo {
public static void main(String[] args) {
//demo1();
TreeSet ts=new TreeSet(new CompartorByName());//比较器
/*
* 以Person对象的年龄进行从小到大的排序。
*
*/
ts.add(new Person("zhangsan",28));
ts.add(new Person("lisi",23));
ts.add(new Person("zhouqi",21));
ts.add(new Person("wangwu",21));
ts.add(new Person("zhaoliu",24));
Iterator it=ts.iterator();
while(it.hasNext()) {
Person p=(Person) it.next();
System.out.println(p.getName()+p.getAge());
}
}
public static void demo1() {
TreeSet ts=new TreeSet();
ts.add("abc");
ts.add("aa");
ts.add("nba");
ts.add("cba");
Iterator it=ts.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}