黑马程序员技术交流社区

标题: 集合中compare方法 [打印本页]

作者: hanjun    时间: 2015-1-16 16:53
标题: 集合中compare方法
  1. /*
  2. 练习:按照字符串长度排序。

  3. 字符串本身具备比较性。但是它的比较方式不是所需要的。

  4. 这时就只能使用比较器。



  5. */

  6. import java.util.*;
  7. class  TreeSetTest
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 TreeSet ts = new TreeSet(new StrLenComparator());

  12.                 ts.add("abcd");
  13.                 ts.add("cc");
  14.                 ts.add("cba");
  15.                 ts.add("aaa");
  16.                 ts.add("z");
  17.                 ts.add("hahaha");

  18.                 Iterator it = ts.iterator();

  19.                 while(it.hasNext())
  20.                 {
  21.                         System.out.println(it.next());
  22.                 }
  23.         }
  24. }

  25. class StrLenComparator implements Comparator
  26. {
  27.         public int compare(Object o1,Object o2)
  28.         {
  29.                 String s1 = (String)o1;
  30.                 String s2 = (String)o2;

  31.                 /*
  32.                 if(s1.length()>s2.length())
  33.                         return 1;
  34.                 if(s1.length()==s2.length())
  35.                         return 0;
  36.                         */

  37.                        

  38.                 int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
  39.                 int num=s1.length().compareTo(s2.length());
  40.                 if(num==0)
  41.                         return s1.compareTo(s2);

  42.                 return num;
  43.         }
  44. }

  45. int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
  46.                 int num1=s1.length().compareTo(s2.length());
复制代码



上边的比较中为什么不用num1进行比较,而是要用integer??
作者: aynuhjl    时间: 2015-1-16 17:39
integer  是基本数据类型包装类  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2