Arraylist集合三種排序
阿新 • • 發佈:2018-12-25
將員工儲存到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);
}
}
}