黑马程序员技术交流社区
标题:
貌似第一次发帖问问题,看来我不是爱问问题的学生啊
[打印本页]
作者:
张一凡
时间:
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
package Collection;
import java.util.Comparator;
import java.util.TreeSet;
import myutil.SOP;
public class TestTreeSet {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] s = {"abc","abcd","a","b","nn","abc","cdf"};
function(s);
}
static void function(String[] str ){
TreeSet<String> ts = new TreeSet<String>(new MyComparator());
for(int i = 0;i < str.length;i++){
ts.add(str[i]);
}
SOP.sop(ts);
}
}
class MyComparator implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
int len = new Integer(o1.length()).compareTo(new Integer(o2.length()));
if (0 == len){
int i = o1.compareTo(o2);
if (0 == i) {
return 1;
}
return i;
}
return len;
}
}
复制代码
作者:
张一凡
时间:
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