首页 > 编程语言 > 详细

ArrayList排序

时间:2019-06-21 23:14:41      阅读:141      评论:0      收藏:0      [点我收藏+]
package LESSON11;
import java.util.ArrayList;
class Employee{
    private String name;
    private int age;
    private double salary;
    public Employee(String name,int age,double salary) {
        this.name=name;
        this.age=age;
        this.salary=salary;      
    }
    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;
    }    
}
public class exercise2 {
    /**
     定义一个Employee类,属性:  name:String,age:int,salary:double 
           把若干Employee对象放在List中,排序并遍历输出,排序规则:salary高的在前面,
    salary相同时age大的在前面,age也相同时按照name的字典顺序排列(a-z排列)
     */
    public static void main(String[] args) {
        Employee emp1=new Employee("jack", 20, 3000);
        Employee emp2=new Employee("jerry", 20, 3000);
        Employee emp3=new Employee("rose", 30, 5000);
        Employee emp4=new Employee("lucy", 40, 5000);
        Employee emp5=new Employee("tom", 30, 7000);
        
        ArrayList<Employee> list=new ArrayList<Employee>();
        list.add(emp1);
        list.add(emp2);
        list.add(emp3);
        list.add(emp4);
        list.add(emp5);
        
        
        //冒泡
        for (int i = 0; i < list.size()-1; i++) {//遍数
            for (int j = 0; j < list.size()-1-i; j++) {//次数
                Employee e1=list.get(j);//获取被比较的对象
                Employee e2=list.get(j+1);
                if(e1.getSalary()<e2.getSalary()){//比较薪资                
                    list.set(j, e2);//交换位置
                    list.set(j+1, e1);
                }else if(e1.getSalary()==e2.getSalary()){
                    if(e1.getAge()<e2.getAge()){//比较年龄
                        list.set(j, e2);//交换位置
                        list.set(j+1, e1);
                    }else if(e1.getAge()==e2.getAge()){
                        if(e1.getName().compareTo(e2.getName())>0){//比较姓名
                            list.set(j, e2);//交换位置
                            list.set(j+1, e1);
                        }                      
} } } }
for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i).getName()+"\t"+list.get(i).getAge()+"\t"+list.get(i).getSalary()); } } }

 运行结果

技术分享图片

ArrayList排序

原文:https://www.cnblogs.com/qfdy123/p/11067069.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!