//简单的字母排列
import java.util.*;
class TreeSetTest
{
public static void main(String[] args)
{
TreeSet ts = new TreeSet(new StrLenComparator());
ts.add("abcd");
ts.add("cc");
ts.add("cba");
ts.add("aaa");
ts.add("z");
ts.add("hahaha");
Iterator it = ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
class StrLenComparator implements Comparator
{
public int compare(Object o1,Object o2)//当第一个参数传进来时,比较器中原本是空的,那第一个参数和null怎么比;
//第二个参数来时和第一个比较,返回值是-1,0,或正整数,这些int类型的返回值
//有什么作用,怎么来确定参数的顺序,,以后的参数传进来时先和谁比较后和谁比较有什么依据吗?
{
String s1 = (String)o1;
String s2 = (String)o2;
int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
if(num==0)
return s1.compareTo(s2);
return num;
}
}
//Comparator和Comparable有什么区别啊,他们与equals又有什么联系
|