package Collection;
import java.util.*;
/**
* 练习;按照字符串长度排序
* 字符串本身具备比较性,但是他的比较方式不是所需要的
* 这是需要比较器
* @author Administrator
*ts.add("a");
*/
public class TreeSetTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeSet ts = new TreeSet(new Mycompare2());
ts.add("abcd");
ts.add("ab");
ts.add("abcdef");
ts.add("a");
ts.add("a");
Iterator it= ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
class Mycompare2 implements Comparator
{
public int compare(Object o1,Object o2)
{
String s1=(String)o1;
String s2=(String)o2;
if(s1.length()>s2.length())
return 1;
if(s1.length()==s2.length())//这里视频中讲的是建立一个num接收比较返回的值,再通过comparaTo方法比较两个字符串的内容进行排序
//理由是当比较结果是0时,会出现错误,我这么写,测试的结果是不会出现重复元素,是不是当此compara方法返回结果是0时,集合会自动转到第一种比较方式呢???求解
return 0;
return -1;
}
}
|