A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© itheima_llt 高级黑马   /  2015-4-16 13:13  /  331 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

练习:
比较字符串长度,按字符串长度排序!

分析:
字符串本身是具备比较性的int compareTo(String str);
但是这里要比较的是字符串长度,
所以需要用比较器让集合具备比较性,
使用的是TreeSet的第二种排序方式

现在加入泛型
  1. import java.util.*;
  2. class GenericDemo2
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 //创建集合,限定类型为String
  7.                 TreeSet<String> ts = new TreeSet<String>(new StrLenComparator());
  8.                
  9.                 //添加String元素
  10.                 ts.add("decsa");
  11.                 ts.add("ab");
  12.                 ts.add("aaad");
  13.                 ts.add("aaad");
  14.                 ts.add("aaab");
  15.                 ts.add("ebc");
  16.                 ts.add("fbcded");
  17.                 ts.add("c");

  18.                 //迭代取出,迭代器也用泛型
  19.                 for(Iterator<String> it = ts.iterator(); it.hasNext(); )
  20.                 {
  21.                         String s = it.next();               
  22.                         System.out.println(s.length()+"----"+s);
  23.                 }
  24.         }
  25. }

  26. //实现比较器,使用泛型
  27. class StrLenComparator implements Comparator<String>
  28. {
  29.         //覆盖compare
  30.         public int compare(String str1,String str2)
  31.         {
  32.                 //判断字符串长度关系
  33.                 int num = new Integer(str1.length()).compareTo(new Integer(str2.length()));

  34.                 //当字符串长度相等,判断字典序
  35.                 if(num==0)
  36.                         return str1.compareTo(str2);

  37.                 //否则不判断字典序
  38.                 return num;
  39.         }
  40. }
复制代码




字符串长度比较在使用泛型后安全了.jpg (64.68 KB, 下载次数: 4)

字符串长度比较在使用泛型后安全了.jpg

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马