默认情况下,保存在List集合中的数组是不进行排序的,不过可以使用Comparable接口自定义排序规则 并自动排序。
步骤1 : 新建一个Java类,实现Comparable接口定义的compareTo()方法,将对象按编号升序排列。
public class Employee implements Comparable<Employee> {
private int id;
private String name;
private int age;
public Employee(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public int compareTo(Employee o) {
if (id > o.id) {
return 1;
} else if (id < o.id) {
return -1;
}
return 0;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("员工的编号:" + id + ", ");
sb.append("员工的姓名:" + name + ", ");
sb.append("员工的年龄:" + age);
return sb.toString();
}
}
步骤2:测试
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestEmployee {
public static void main(String[] args) {
List<Employee> list=new ArrayList<Employee>();
list.add(new Employee(3,"zhangsan",21));
list.add(new Employee(2,"lisi",22));
list.add(new Employee(1,"wangwu",23));
System.out.println("排序前:");
for (Employee employee : list) {
System.out.println(employee);
}
System.out.println("排序后:");
//如果保存到数组中,可以用Arrays.sort()方法进行自动排序
Collections.sort(list); //执行自动排序
for (Employee employee : list) {
System.out.println(employee);
}
}
}
执行结果如下图所示: