A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叶子和大人 中级黑马   /  2015-10-29 23:49  /  130 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2.         如果不按照对象中具备的自然顺序进行排序或者对象中不具备自然排序。怎么办?
  3.         TreeSet集合排序的第二种排序方式:
  4.         让集合自身具备比较功能,定义一个类实现Comparator接口,覆盖compare方法
  5.         将该类对象作为参数传递给TreeSet集合的构造函数。       
  6. */

  7. import java.util.*;

  8. //创建一个根据Person类的name进行排序的比较器
  9. class ComparatorByName implements Comparator{
  10.         public int compare(Object obj1,Object obj2){
  11.                 Person p1 = (Person)obj1;
  12.                 Person p2 = (Person)obj2;
  13.                
  14.                 int temp = p1.getName().compareTo(p2.getName());
  15.                 return temp == 0?p1.getAge()-p2.getAge():temp;
  16.         }
  17. }
  18. public class TreeSet2{
  19.         public static void main(String[] args){
  20.                 TreeSet ts = new TreeSet(new ComparatorByName());

  21.                 ts.add(new Person("zs",23));
  22.                 ts.add(new Person("ls",32));
  23.                 ts.add(new Person("ww",43));
  24.                 ts.add(new Person("zl",4));
  25.                 ts.add(new Person("tq",43));

  26.                 Iterator it = ts.iterator();
  27.                 while(it.hasNext()){
  28.                         Person p = (Person)it.next();
  29.                         System.out.println(p.getName()+"…"+p.getAge());
  30.                 }
  31.         }
  32. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马