目录
一、使用sort方法
对于sort方法,在Arrays类和Collections类中都有,前者用于对数组的排序,后者用于对List的排序。
Integer[] nums = new Integer[]{9,39,4,65,464,454};
Student[] students = new Student[3];
List<Integer> list = Arrays.asList(nums);
List<Student> studentList = Arrays.asList(students);
students[0]=new Student(14,98.0,"mjh");
students[1]=new Student(13,98.0,"wys");
students[2]=new Student(13,96.0,"dty");
//方式一:使用sort方法
//使用Arrays.sort方法,实现从小到大排序
Arrays.sort(nums);//默认升序、全部排序
Arrays.sort(nums,0,3);//默认升序,从[0,3)
Arrays.sort(nums,Collections.reverseOrder());//降序排序
//使用Collections.sort方法实现从小到大
Collections.sort(list);
Collections.sort(list,Collections.reverseOrder());//降序排序
二、使用比较器comparator
比较器用于自定义排序是非常方便的,完全可以自己定义比较的规则。
Integer[] nums = new Integer[]{9,39,4,65,464,454};
Student[] students = new Student[3];
List<Integer> list = Arrays.asList(nums);
List<Student> studentList = Arrays.asList(students);
students[0]=new Student(14,98.0,"mjh");
students[1]=new Student(13,98.0,"wys");
students[2]=new Student(13,96.0,"dty");
//方式二,自定义比较规则
Arrays.sort(nums,new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
});
//多因素排序
Arrays.sort(students,new Comparator<Student>(){
@Override
public int compare(Student o1, Student o2) {
if(o1.getScore().equals(o2.getScore())){
return o2.getAge()-o1.getAge();
}else return (int)(o1.getScore()-o2.getScore());
}
});