根据指定规则排序

来源:互联网 发布:pes2017亨利捏脸数据 编辑:程序博客网 时间:2024/05/19 07:09
package Listpx;/** * 定义一个Employee类, * 属性:name:String,age:int,salary:double  *  把若干Employee对象放在List中, *  排序并遍历输出, *  排序规则:salary高的在前面,salary相同时age大的在前面, *  age也相同时按照name升序排列 *  把若干Employee对象放在Set中并遍历,要求没有重复元素 * @author Administrator * */public class Employee {    private String name;    private int age;    private double 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 Employee(String name,int age,double salary) {        super();        this.name = name;        this.age = age;        this.salary = salary;    }    @Override    public String toString() {        return "姓名:" + name + ", 年龄:" + age + ", 工资:" + salary + "]";    }}
package Listpx;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Etest {    public static List<Employee> list=new ArrayList<Employee>();    public static Scanner sc=new Scanner(System.in);    public static void main(String[] args) {        list.add(new Employee("zhangsan", 20, 3000));// j        list.add(new Employee("lisi", 12, 4000));// j+1        list.add(new Employee("wangwu", 12, 5000));        list.add(new Employee("zhaoliu", 20, 3000));        list.add(new Employee("tianqi", 20, 7000));        list.add(new Employee("张三", 25, 6000));        list.add(new Employee("zhangsanfeng", 20, 7000));        list.add(new Employee("张三", 12, 8000));        //给集合list冒泡排序        for (int i = 0; i < list.size()-1; i++) {            for (int j = 0; j < list.size()-i-1; j++) {                Employee e1=list.get(j);                Employee e2=list.get(j+1);                if(e1.getSalary()<e2.getSalary()){                    list.set(j, e2);//将对象e2放在索引为j的位置                    list.set(j+1, e1);//将对象e1放在索引为j+1的位置                }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){                            //compareTo比较字符串在字典中的先后顺序,前面的顺序靠后就大于0                            list.set(j, e2);                            list.set(j+1, e1);                        }                    }                }            }        }        for (Employee e : list) {            System.out.println(e);        }    }}
0 0
原创粉丝点击