本帖最后由 凝聚 于 2013-10-12 15:15 编辑
public class One {
public static void main(String[] args) {
sortDome();
}
public static void sortDome()
{
List<String>list=new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("bbb");
list.add("bbb");
list.add("df");
list.add("jkygs");
list.add("abcdfjk");
sop(list);
//Collections.sort(list);//[abcd, aaa, bbb, bbb, df, jkygs, abcdfjk][aaa, abcd, abcdfjk, bbb, bbb, df, jkygs]
Collections.sort(list,new cop());//[abcd, aaa, bbb, bbb, df, jkygs, abcdfjk] [df, aaa, bbb, bbb, abcd, jkygs, abcdfjk]
sop(list);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
class cop implements Comparator<String>
{
public int compare(String s1,String s2)
{
if(s1.length()>s2.length())///////////////
return 1;
if(s1.length()<s2.length())///////////////
return -1;
return s1.compareTo(s2);//////////////////////
}
}
上述代码中
public int compare(String s1,String s2){if(s1.length()>s2.length())/////////////// return 1;if(s1.length()<s2.length())/////////////// return -1;return s1.compareTo(s2);//////////////////////}}这段代码我认为是谁的字符串长度长谁排在前头,但是输出的结果为 [df, aaa, bbb, bbb, abcd, jkygs, abcdfjk],为什么不是相反方向输出的。
|