Arraylist集合三种排序

来源:互联网 发布:网络机顶盒必装软件 编辑:程序博客网 时间:2024/06/05 08:02

将员工存储到Arraylist集合中,先后按照工资、年龄、名字来排序

员工类

public class Employee {    private String name; //姓名    private int age; //年龄    private double salary; //名字    public Employee(String name, int age, double salary) {        super();        this.name = name;        this.age = age;        this.salary = salary;    }    public Employee() {        super();    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public double getSalary() {        return salary;    }    public void setSalary(double salary) {        this.salary = salary;    }    @Override    public String toString() {        return "姓名:" + name + ", 年龄" + age + ", 工资:" + salary;    }}

测试类

package paixu;import java.util.ArrayList;import java.util.List;public class Test {    public static void main(String[] args) {        Employee e1 = new Employee("Alis",24,3070);        Employee e2 = new Employee("tom",28,3030);        Employee e3 = new Employee("Jack",25,3000);        Employee e4 = new Employee("Lily",19,3500);        Employee e5 = new Employee("Mike",23,3040);        Employee e6 = new Employee("Bobo",24,2000);        List<Employee> list = new ArrayList<Employee>();        list.add(e1);        list.add(e2);        list.add(e3);        list.add(e4);        list.add(e5);        list.add(e6);        for (Employee e : list) {            System.out.println(e);        }        System.out.println("========排序后=========");        for (int i = 1; i < list.size(); i++) {            for (int j = 0; j < list.size() - 1; j++) {                Employee emp1 = list.get(j);                Employee emp2 = list.get(j+1);                //收入比较                if(emp1.getSalary() < emp2.getSalary()){                    list.set(j, emp2);                    list.set(j+1, emp1);                }else if(emp1.getSalary() == emp2.getSalary()){                    //比较年龄                    if(emp1.getAge() < emp2.getAge()){                        list.set(j, emp2);                        list.set(j+1, emp1);                    }else if(emp1.getAge() == emp2.getAge()){                        //按比较规则比较名字                        if(emp1.getName().compareTo( emp2.getName())>0){                            list.set(j, emp2);                            list.set(j+1, emp1);                            }                    }                }            }        }        //遍历        for (Employee e : list) {            System.out.println(e);        }    }}
原创粉丝点击