黑马程序员技术交流社区
标题:
为什么我上面不加引用程序对象也能运行
[打印本页]
作者:
费破的可
时间:
2013-10-31 12:46
标题:
为什么我上面不加引用程序对象也能运行
本帖最后由 费破的可 于 2013-10-31 14:02 编辑
import java.util.*;
class TreeSetTest
{
public static void main(String[] args)
{
TreeSet ts = new TreeSet(new StrLenComparator() );//为什么这里不加new StrLenComparator()程序也能运行???
ts.add("assa");
ts.add("afffa");
ts.add("ccaa");
ts.add("wwaa");
ts.add("wwaa");
ts.add("adfsf");
Iterator it = ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
class StrLenComparator implements Comparator
{
public int compare(Object o1,Object o2)
{
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;
}
}
作者:
落木萧萧
时间:
2013-10-31 13:48
TreeSet有四种构造函数,楼主用的是TreeSet(Comparator<? super E> comparator),也就是在new 的时候指定一个comparator。如果不加comparator,那就是new的空的构造函数,也是可以的,只是没有指定comparator,不能在add的时候进行排序。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2