请设计一个具备比较功能的类(例如 员工类, 需要有姓名, 年龄, 薪水三个成员属性需要私有并提供get, set方法, 可以通过构造函数进行初始化,并且按照薪水进行排序)
题目有点看不懂!它是要求我根据薪水对什么进行排序啊?
求大神帮助,希望写出详细代码!java

解决方案 »

  1.   

    重点就是一个“比较”,一个类中包含姓名, 年龄, 薪水三个属性,比较的应该是薪水这个属性,比如定义俩对象,通过get薪水,然后比较他们的大小。
      

  2.   

    重写一个compare方法。
    public Class User{
    private String name;
    private String id;
    private Long salary;
    public void setName(String name) {
    this.name = name;
    }
    public String getName() {
    return name;
    }
    //剩下的一样
    public boolean compare(long l1,long l2){
    //写一个比较l1和l2大小的方法。
    }
    }
      

  3.   

    楼主不要听楼上的,他的解答不正确。
    自己做吧,初学java的孩纸伤不起啊,不想学没必要学这个的。
      

  4.   

    public boolean compare(long l1,long l2){
    //写一个比较l1和l2大小的方法。
    }
      

  5.   

    工资怎么可能是long类型,一点常识都没!!!
      

  6.   

    初学的自己先去理解下思想吧class Test {   public Test(){
          //在这里面赋给变量初值.}   private String name ;
      private  int age ;
      private double money ;
      
    //set,get自己补充.
    }简单给你敲了一个,其余的自己补充吧,
    可以给你个思路:
    1.在构造器里面进行初始化,
    2.用薪水排序就是:
    姓名   年龄  薪水
    x         23    2000
    y         18      1800
    z          21        1700
    这样按照薪水的高低排序.最简单的方法,可以用数组对他们进行排序。
    刚开始都难,慢慢来吧。。加油!
      

  7.   

    楼主是需要这个意思么?
    public class Employee {

    private String userName;
    private int age;
    private Double salary;


    public Employee(String userName, int age, double salary) {
    this.userName = userName;
    this.age = age;
    this.salary = salary;
    }

    @Override
    public String toString() {
    StringBuilder sb = new StringBuilder(256);
    sb.append("{userName:").append(userName);
    sb.append("age:").append(age);
    sb.append("salary:").append(salary).append("}");
    return sb.toString();
    }
    // getter、setter方法
       ..........
    }/**
     * 根据工资进行升序的
     *
     */
    public class EmployeeSalaryAscComparator implements Comparator<Employee> { @Override
    public int compare(Employee o1, Employee o2) {
    return o1.getSalary().compareTo(o2.getSalary());
    }
     
    }
    /**
     * 测试
     *
     */
    public class EmployeeTest {
    private static final Log log = LogFactory.getLog(EmployeeTest.class);
    @Test
    public void test() {
    TreeSet<Employee> employees = new TreeSet<>(new EmployeeSalaryAscComparator());
    employees.add(new Employee("test3", 24, 42345.67));
    employees.add(new Employee("test1", 21, 12345.67));
    employees.add(new Employee("test2", 23, 32345.67));

    for (Employee employee : employees) {
    log.info(employee);
    }
    }
    }
    执行结果 :
    {userName:test1age:21salary:12345.67}
    {userName:test2age:23salary:32345.67}
    {userName:test3age:24salary:42345.67}
      

  8.   

    测试代码里TreeSet<Employee> employees = new TreeSet<Employee>(new EmployeeSalaryAscComparator());这么些,写少了
      

  9.   

    题目的意思是设计一个可以用Collections对List<Employee>排序的类
      

  10.   

    楼主可以让该对象实现一个Comparable的接口 然后重写那个比较的方法 比较的依据就是工资那个属性
    没记错的话 原来方法是return 0. 那么你改成return this.salary - other.salary
    这样的话 你如果对象放在数组里 那就用Arrays.sort()这个方法,如果用TreeSet就可以直接搞定了
    lz加油TreeSet也可以写个比较器 这个自己看看api