1. 程式人生 > >Arraylist集合三種排序

Arraylist集合三種排序

將員工儲存到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); } } }