java中TreeSet类集合的一个排序问题
package com.shengsiyuan2;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetTest3
{
public static void main(String[] args)
{
TreeSet set = new TreeSet(new MyComparator());
set.add("C");
set.add("A");
set.add("B");
set.add("E");
set.add("a");
set.add("F");
set.add("D");
for(Iterator iter = set.iterator(); iter.hasNext();)
{
String value = (String)iter.next();
System.out.println(value);
}
}
}
class MyComparator implements Comparator
{
public int compare(Object arg0, Object arg1)
{
String s1 = (String)arg0;
String s2 = (String)arg1;
return s2.compareTo(s1);
}
}
程序如上所示,是将set集合中的元素按照自定义规则进行排序,compare方法和return s2.compareTo(s1);语句
只是将s1和s2进行了比较,并没有进行排序,但为和输出结果却是已经排序过的结果,还有为何s2.compareTo(s1);是进行
降序排序,而s1.compareTo(s2);时进行升序排序