List排序大体上分为如下两类:
1、List<Integer> 对Integer、String等类型的List排序
2、List<Object> 对自定义对象的排序
一、对List<Integer>进行排序
List<Integer> intlist = new ArrayList<Integer>();
intlist.add(3);
intlist.add(1);
intlist.add(2);
intlist.add(9);
intlist.add(7);
Collections.sort(intlist);//默认排序(从小到大)
for(int i : intlist){
System.out.println(i);
}
Collections.reverse(intlist);//倒叙(从大到小)
for(int i : intlist){
System.out.println(i);
}
二、对List<Object>进行排序
对象需要实现Comparable接口,然后重写compareTo方法
/**
* 本类功能简述:
* 〈〉
*
* @author caidingnu
* @create 2019/2/25
* @since 1.0.0
*/
public class Student implements Comparable<Student> {
private int age;
private String name;
public Student() {
}
public Student(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
@Override
public int compareTo(Student o) {
if (this.age>o.age){
return -1;
}else if (this.age<o.age){
return 1;
}else {
return 0;
}
}
}
import java.sql.Array;
import java.util.*;
import static java.util.Collections.*;
public class Main {
public static void main(String[] args) {
Student student = new Student(24, "jim");
Student student1 = new Student(29, "bob");
Student student2 = new Student(26, "tom");
List<Student> list = new ArrayList<Student>() {{
add(student);
add(student1);
add(student2);
}};
Collections.sort(list); //升序降序取决于重写的compareTo方法
for (Student student3 : list) {
System.out.println(student3);
}
}
}