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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王训印 中级黑马   /  2015-7-29 08:07  /  148 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

TreeSet对元素进行排序的方式一:
让元素自身具备比较功能,元素就需要实现Comparable接口,覆盖compareTo方法。
示例:
  1. import java.util.Comparator;
  2. import java.util.Iterator;
  3. import java.util.TreeSet;

  4. //创建了一个根据Person类的name进行排序的比较器。
  5. class ComparatorByName implements Comparator{
  6. public int compare(Object o1,Object o2){
  7. Person p1 = (Person)o1;
  8. Person p2 = (Person)o2;

  9. int temp = p1.getName().compareTo(p2.getName());
  10. return temp == 0?p1.getAge()-p2.getAge() : temp;
  11. }
  12. }

  13. public class TreeSetDemo{
  14. public static void main(String[] args){
  15. TreeSet ts = new TreeSet(new ComparatorByName());

  16. //以Person对象年龄进行从小到大的排序
  17. ts.add( new Person("zhangsan" ,28));
  18. ts.add( new Person("wangwu" ,23));
  19. ts.add( new Person("lisi" ,21));
  20. ts.add( new Person("zhouqi" ,29));
  21. ts.add( new Person("zhaoliu" ,25));
  22. Iterator it = ts.iterator();
  23. while(it.hasNext()){
  24. Person p = (Person)it.next();
  25. System.out.println(p.getName() + ":" + p.getAge());
  26. }
  27. }
  28. }
复制代码


TreeSet集合第二种排序方式:
让集合自身具备比较功能,定义一个类实现Comparator接口,覆盖compare方法。将该类对象作为参数传递给TreeSet集合的构造函数。
示例2:
  1. import java.util.Comparator;
  2. import java.util.Iterator;
  3. import java.util.TreeSet;
  4. public class TreeSetTest{
  5. public static void main(String[] args){
  6. TreeSet ts = new TreeSet(new ComparatorByLen());
  7. ts.add( "aaaa");
  8. ts.add( "zz");
  9. ts.add( "nbag");
  10. ts.add( "cba");
  11. ts.add( "abc");
  12. Iterator it = ts.iterator();
  13. while(it.hasNext()){
  14.         System.out.println(it.next());
  15. }
  16. }
  17. }
  18. class ComparatorByLen implements Comparator{
  19. public int compare(Object o1,Object o2){
  20. String s1 = (String)o1;
  21. String s2 = (String)o2;
  22. int temp = s1.length() - s2.length();
  23. return temp == 0?s1.compareTo(s2):temp;
  24. }
  25. }
复制代码

0 个回复

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