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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public static void main(String[] args) {
  2.                 // 用TreeSet集合储存自定义对象,实现按照年龄从小到大排序,使用TreeSet的带参构造(比较器接口的方式实现)\
  3.                 TreeSet<Person>ts = new TreeSet<>(new Comparator<Person>() {

  4.                         @Override
  5.                         public int compare(Person p1, Person p2) {
  6.                                 int num = p1.getAge()-p2.getAge();
  7.                                 return num == 0? p1.getName().compareTo(p2.getName()) : num;
  8.                         }
  9.                 });
  10.                 Person p1 = new Person ("周立波",20);
  11.                 Person p2 = new Person ("李咏",23);
  12.                 Person p3 = new Person ("包租公",30);
  13.                 Person p4 = new Person ("包租婆",50);
  14.                 ts.add(p1);
  15.                 ts.add(p2);
  16.                 ts.add(p3);
  17.                 ts.add(p4);
  18.                 for (Person p : ts) {
  19.                         System.out.println(p.getName() + "..." + p.getAge());
  20.                 }
  21.         }
复制代码

2 个回复

倒序浏览
学到了
回复 使用道具 举报
用过内部类实现compare方法比较成员年龄,如果年龄相同比较姓名。返回比较后的结果,大于0升序,小于0降序。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马