先看Collections工具包。位于java.util.Collections
提供排序有两个方法,其中sort(List)方法实际上是list.sort(null);-》看到是仍然调用两个参数的方法,在使用中推荐直接使用两个参数的sort方法例子如下:
public class sort {
public static void main(String[] args) {
List<String> li = new ArrayList<String>();
li.add("1");
li.add("7");
li.add("4");
li.add("14");
li.add("21");
li.add("13");
//将list中的值由小到大排序
Collections.sort(li,new Comparator<String>() {
public int compare(String o1, String o2) {
return Integer.parseInt(o2)-Integer.parseInt(o1);
}
});
System.out.println(li.toString());
}
}
其中o1-o2为由小到大排序,o2-o1为由大到小排序,两者可以混合使用,例如数学成绩正序,语文成绩倒序的学生排名通过该方式实现。
另一种实现方式为
li.sort(new Comparator<String>() {
public int compare(String o1, String o2) {
return Integer.parseInt(o2)-Integer.parseInt(o1);
}
});
其实就是Collection.sort 方法中再次调用的方法。源码如下
另外提供几个常用方法
//随机排列
Collections.shuffle(list);
//逆序
Collections.reverse(list);