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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张一凡 于 2012-3-13 21:14 编辑

刚看到一哥们发了问题,得了5技术分,眼红了。
需求:将一堆字符串按照长度进行排序。
思路:尽量写清楚
code...

5 个回复

正序浏览
张锐 发表于 2012-3-13 21:32
先把字符串数组放进treeset中,构造一个comparator,此comparator优先按照字符串的长度排序,在长度相同的 ...

连非0操作都想到了,给力哈。
回复 使用道具 举报
张锐 发表于 2012-3-13 21:32
先把字符串数组放进treeset中,构造一个comparator,此comparator优先按照字符串的长度排序,在长度相同的 ...

嗯·   哦了,很给力啊。
回复 使用道具 举报
  1. package Collection;

  2. import java.util.Comparator;
  3. import java.util.TreeSet;

  4. import myutil.SOP;

  5. public class TestTreeSet {

  6.         /**
  7.          * @param args
  8.          */
  9.         public static void main(String[] args) {
  10.                 // TODO Auto-generated method stub
  11.                 String[] s = {"abc","abcd","a","b","nn","abc","cdf"};
  12.                 function(s);
  13.         }
  14.         static void function(String[] str  ){
  15.                 TreeSet<String> ts = new TreeSet<String>(new MyComparator());
  16.                 for(int i = 0;i < str.length;i++){
  17.                         ts.add(str[i]);
  18.                 }
  19.                 SOP.sop(ts);
  20.         }
  21.        
  22.        
  23. }

  24. class MyComparator implements Comparator<String>{

  25.         @Override
  26.         public int compare(String o1, String o2) {
  27.                 // TODO Auto-generated method stub
  28.                 int len = new Integer(o1.length()).compareTo(new Integer(o2.length()));
  29.                 if (0 == len){
  30.                         int i = o1.compareTo(o2);
  31.                         if (0 == i) {
  32.                                 return 1;
  33.                         }
  34.                         return i;
  35.                 }
  36.                 return len;
  37.         }
  38.        
  39. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
房宝彬 + 2

查看全部评分

回复 使用道具 举报
先把字符串数组放进treeset中,构造一个comparator,此comparator优先按照字符串的长度排序,在长度相同的情况下,再比较字符串的自然顺序,为了避免自然排序相同的情况下字符串会被覆盖,可以在这种情况下手动让他非零。
回复 使用道具 举报
只写思路就行,code写不写无所谓
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马