一种方法是实现Comparable接口并重写compareTo方法。第二种就是Comparator比较器,这里举例的是第一种方法
关于compareTo方法的返回值:int类型。简单来说如果返回值是正数就是升序、负数就是降序。其它详细内容请查阅相关资料
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author lzy
*/
public class Main {
public static void main(String[] args) {
List<Worker> list = new ArrayList<Worker>();
list.add(new Worker(28, 4, 8000));
list.add(new Worker(29, 5, 9000));
list.add(new Worker(32, 5, 7900));
list.add(new Worker(32, 4, 8500));
list.add(new Worker(28, 4, 9100));
Collections.sort(list);
for (Worker worker : list) {
System.out.println(worker);
}
}
}
class Worker implements Comparable<Worker> {
int age, workAge, salary;
public Worker(int age, int workAge, int salary) {
this.age = age;
this.workAge = workAge;
this.salary = salary;
}
@Override
public String toString() {
return "Worker{" +
"age=" + age +
", workAge=" + workAge +
", salary=" + salary +
'}';
}
@Override
public int compareTo(Worker w) {
//按照年龄升序
int result = this.age - w.age;
if (result == 0) {
//如果年龄相同 就按照工龄降序排列
result = w.workAge - this.workAge;
if (result == 0) {
//如果工龄相同 按照工资降序排列
result = w.salary - this.salary;
}
}
return result;
}
}