packageday05;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List;publicclassB_paixu{publicstaticvoidmain(String[]args){/...
package day05;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class B_paixu {
public static void main(String[] args) {
// TODO Auto-generated method stub
List list=new ArrayList();
list.add("BigBossm");
list.add("ben");
list.add("jazz");
list.add("adm");
list.add("Marry");
list.add("bill");
list.add("Xiloer");
list.add("Kate");
list.add("killer");
/**比较器:comparator
* 排序要求(自定义要求):字母少的在前
* 定义一个比较器,比较规则为字母少的小
* 返回值>0:o1>02
* 返回值<0:o1<02
* 返回值=0:o1=02
*/
Comparator comp=new Comparator(){
public int compare(String o1,String o2){
return o1.length()-o2.length();
}
};
Collections.sort(list,comp);
System.out.println(list);
}
}
输出结果:[adm, ben, Kate, bill, jazz, Marry, Xiloer, killer, BigBossm]
我的问题是:怎么从compare()方法中看出是从字母少到字母多排序的。
把return改为return o2.length()-o1.length();后又从字母多到字母少排序了,如下
[BigBossm, Xiloer, killer, Marry, Kate, bill, jazz, adm, ben]
怎么从compare中看出排序结果的,跟sort又有怎样的联系
很抱歉我没有财富值,麻烦不介意的帮我解释一下
展开