本帖最后由 高波 于 2013-7-26 09:52 编辑
注释部分关于o1,o2换位置使打印字符串的顺序就变了,为什么?希望给个详细点的说明,一直纠结没想明白- import java.util.*;
- class GenericDemo2
- {
- public static void main(String[] args)
- {
- TreeSet<String> ts = new TreeSet<String>(new LenComparator());
- ts.add("abcd");
- ts.add("cc");
- ts.add("cba");
- ts.add("aaa");
- ts.add("z");
- ts.add("hahaha");
- Iterator<String> it = ts.iterator();
- while(it.hasNext())
- {
- String s = it.next();
- System.out.println(s);
- }
- }
- }
- class LenComparator implements Comparator<String>
- {
- public int compare(String o1,String o2)
- {
- int num = new Integer(o2.length()).compareTo(new Integer(o1.length()));//这里为什么o1,o2换位置字符串打印顺序就变了,一直没想明白
- if(num==0)
- return o2.compareTo(o1);
- return num;
- }
- }
复制代码 |