String、Integer等基本类型已经实现了Comparable接口,可以直接使用Collections.sort()进行排序。
1 | static List<Integer> intList = Arrays.asList(2, 3, 1); |
默认为正序排序,若想自定义排序,可以自己实现Comparator接口的compare方法。
1 | Coolections.sort(intList, new Comparator<Integer>() { |
接下来是自定义类的排序,自定义一个类:
1 | public class Emp { |
首先直接使用Collections.sort()进行排序
1 | static List<Emp> empList; |
此时会报错:
The method sort(List
意思是参数类型为List
1 | public class Emp implements Comparable<Emp>{ |
或者使用第二个方法,调用Collections.sort(List
1 | // 调用的时候 |
总结:
1.对于String或Integer这些已经实现Comparable接口的类来说,可以直接使用Collections.sort方法传入list参数来实现默认方式(正序)排序;
2.如果不想使用默认方式(正序)排序,可以通过Collections.sort传入第二个参数类型为Comparator来自定义排序规则;
3.对于自定义类型(如本例子中的Emp),如果想使用Collections.sort的方式一进行排序,可以通过实现Comparable接口的compareTo方法来进行,如果不实现,则参考第2点;