黑马程序员技术交流社区

标题: 貌似第一次发帖问问题,看来我不是爱问问题的学生啊 [打印本页]

作者: 张一凡    时间: 2012-3-13 21:13
标题: 貌似第一次发帖问问题,看来我不是爱问问题的学生啊
本帖最后由 张一凡 于 2012-3-13 21:14 编辑

刚看到一哥们发了问题,得了5技术分,眼红了。
需求:将一堆字符串按照长度进行排序。
思路:尽量写清楚
code...
作者: 张一凡    时间: 2012-3-13 21:22
只写思路就行,code写不写无所谓
作者: 张锐    时间: 2012-3-13 21:32
先把字符串数组放进treeset中,构造一个comparator,此comparator优先按照字符串的长度排序,在长度相同的情况下,再比较字符串的自然顺序,为了避免自然排序相同的情况下字符串会被覆盖,可以在这种情况下手动让他非零。

作者: 张锐    时间: 2012-3-13 21:48
  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. }
复制代码

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

嗯·   哦了,很给力啊。
作者: 张一凡    时间: 2012-3-13 22:17
张锐 发表于 2012-3-13 21:32
先把字符串数组放进treeset中,构造一个comparator,此comparator优先按照字符串的长度排序,在长度相同的 ...

连非0操作都想到了,给力哈。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2