- /*
- 如果不按照对象中具备的自然顺序进行排序或者对象中不具备自然排序。怎么办?
- TreeSet集合排序的第二种排序方式:
- 让集合自身具备比较功能,定义一个类实现Comparator接口,覆盖compare方法
- 将该类对象作为参数传递给TreeSet集合的构造函数。
- */
- import java.util.*;
- //创建一个根据Person类的name进行排序的比较器
- class ComparatorByName implements Comparator{
- public int compare(Object obj1,Object obj2){
- Person p1 = (Person)obj1;
- Person p2 = (Person)obj2;
-
- int temp = p1.getName().compareTo(p2.getName());
- return temp == 0?p1.getAge()-p2.getAge():temp;
- }
- }
- public class TreeSet2{
- public static void main(String[] args){
- TreeSet ts = new TreeSet(new ComparatorByName());
- ts.add(new Person("zs",23));
- ts.add(new Person("ls",32));
- ts.add(new Person("ww",43));
- ts.add(new Person("zl",4));
- ts.add(new Person("tq",43));
- Iterator it = ts.iterator();
- while(it.hasNext()){
- Person p = (Person)it.next();
- System.out.println(p.getName()+"…"+p.getAge());
- }
- }
- }
复制代码
|
|