练习:
比较字符串长度,按字符串长度排序!
分析:
字符串本身是具备比较性的int compareTo(String str);
但是这里要比较的是字符串长度,
所以需要用比较器让集合具备比较性,
使用的是TreeSet的第二种排序方式
现在加入泛型
- import java.util.*;
- class GenericDemo2
- {
- public static void main(String[] args)
- {
- //创建集合,限定类型为String
- TreeSet<String> ts = new TreeSet<String>(new StrLenComparator());
-
- //添加String元素
- ts.add("decsa");
- ts.add("ab");
- ts.add("aaad");
- ts.add("aaad");
- ts.add("aaab");
- ts.add("ebc");
- ts.add("fbcded");
- ts.add("c");
- //迭代取出,迭代器也用泛型
- for(Iterator<String> it = ts.iterator(); it.hasNext(); )
- {
- String s = it.next();
- System.out.println(s.length()+"----"+s);
- }
- }
- }
- //实现比较器,使用泛型
- class StrLenComparator implements Comparator<String>
- {
- //覆盖compare
- public int compare(String str1,String str2)
- {
- //判断字符串长度关系
- int num = new Integer(str1.length()).compareTo(new Integer(str2.length()));
- //当字符串长度相等,判断字典序
- if(num==0)
- return str1.compareTo(str2);
- //否则不判断字典序
- return num;
- }
- }
复制代码
|
|